//-----------------------------------------------------------------------------
#ifndef __S3DXAIEngineAPI_h__
#define __S3DXAIEngineAPI_h__
//-----------------------------------------------------------------------------
#include "S3DXMacros.h"
#include "S3DXAIFunction.h"
#include "S3DXAIVariables.h"
//-----------------------------------------------------------------------------
namespace S3DX
{
    class AIEngineAPI ;
}
//-----------------------------------------------------------------------------
namespace S3DX_MODULE_GUID
{
    extern S3DX::AIEngineAPI *__pS3DXEAPIMI ;
}
//-----------------------------------------------------------------------------

//-----------------------------------------------------------------------------
namespace S3DX
//-----------------------------------------------------------------------------
{
    class AIEngineAPI
    {
    public :

        //---------------------------------------------------------------------
        //  Virtual destructor : provided because of inheritence. 
        //  May not be needed to overload it.
        //
        virtual ~AIEngineAPI ( ) { }

        //---------------------------------------------------------------------
        //  Callback registering : this method will be called by the engine, 
        //  for each available callback, at plugin initialization time. 
        //  Once a callback is registered, it is be possible for the plugin to 
        //  use it to call the corresponding AI engine API function. 
        //
        virtual void    RegisterCallback    ( uint32 _iCallbackID, AICallback _pCallback ) = 0 ;

        //---------------------------------------------------------------------
        //  Callback IDs (crc32 of the enum name)
        //
        enum
        {
            CallbackID_animation_setCurrentClip                                             = 0x0C0B94C3,
            CallbackID_animation_getCurrentClip                                             = 0x731527B4,
            CallbackID_animation_setPlaybackSpeed                                           = 0xB3FBBF64,
            CallbackID_animation_getPlaybackSpeed                                           = 0x81EDCD7D,
            CallbackID_animation_setPlaybackLevel                                           = 0x26378D81,
            CallbackID_animation_getPlaybackLevel                                           = 0x1421FF98,
            CallbackID_animation_setPlaybackKeyFrameBegin                                   = 0xB910B1E5,
            CallbackID_animation_getPlaybackKeyFrameBegin                                   = 0xAF7D5087,
            CallbackID_animation_setPlaybackKeyFrameEnd                                     = 0xA3FC74B2,
            CallbackID_animation_getPlaybackKeyFrameEnd                                     = 0x56AAADF3,
            CallbackID_animation_setPlaybackMode                                            = 0x2C08CF1A,
            CallbackID_animation_getPlaybackMode                                            = 0xE2163536,
            CallbackID_animation_setPlaybackCursor                                          = 0xDBC245A7,
            CallbackID_animation_getPlaybackCursor                                          = 0xBF9BFB15,
            CallbackID_animation_matchPlaybackCursor                                        = 0x8F8AB851,
            CallbackID_animation_setSkeletonScale                                           = 0x2FC07138,
            CallbackID_animation_getSkeletonScale                                           = 0x1DD60321,
            CallbackID_animation_setObjectChannel                                           = 0xD4AE3510,
            CallbackID_animation_getClipKeyFrameRangeMin                                    = 0xE35831EA,
            CallbackID_animation_getClipKeyFrameRangeMax                                    = 0xDF550EB3,
            CallbackID_animation_getClipName                                                = 0x47C02FB5,
            CallbackID_animation_setPlaybackIgnoreNotAnimatedChannels                       = 0x052A0FF5,
            CallbackID_animation_getPlaybackIgnoreNotAnimatedChannels                       = 0xDC3B353E,
            CallbackID_animation_setPlaybackIgnoreIfCursorOutOfRange                        = 0xBE6A3950,
            CallbackID_animation_getPlaybackIgnoreIfCursorOutOfRange                        = 0x790A2EB9,
                    
            CallbackID_application_getName                                                  = 0x31C05106,
            CallbackID_application_getPackDirectory                                         = 0x2F7AB6F7,
            CallbackID_application_getUserCount                                             = 0xD22CF14D,
            CallbackID_application_getUserAt                                                = 0x1A09851A,
            CallbackID_application_getUser                                                  = 0xE270F949,
            CallbackID_application_getCurrentUser                                           = 0x93FD7202,
            CallbackID_application_getCurrentUserScene                                      = 0x443EC2F3,
            CallbackID_application_getCurrentUserSceneName                                  = 0xC89DB4AB,
            CallbackID_application_setCurrentUserScene                                      = 0xBE14F41B,
            CallbackID_application_getCurrentUserSceneTaggedObject                          = 0x18689D05,
            CallbackID_application_getCurrentUserAIVariable                                 = 0xD034DD52,
            CallbackID_application_setCurrentUserAIVariable                                 = 0xC6593C30,
            CallbackID_application_getCurrentUserAIState                                    = 0x3D1397B0,
            CallbackID_application_playOverlayExternalMovie                                 = 0xBB4A7585,
            CallbackID_application_playOverlayMovie                                         = 0xC48499ED,
            CallbackID_application_stopOverlayMovie                                         = 0x2AA921BF,
            CallbackID_application_isOverlayMoviePlaying                                    = 0x36DA2A37,
            CallbackID_application_startCurrentUserScenePreloading                          = 0x333B99AB,
            CallbackID_application_getCurrentUserScenePreloadingStatus                      = 0x289178B3,
            CallbackID_application_forceModelToStayLoaded                                   = 0x807CA3DD,
            CallbackID_application_forceResourceToStayLoaded                                = 0xEB1E6A4B,
            CallbackID_application_isModelLoaded                                            = 0x2A746424,
            CallbackID_application_isResourceLoaded                                         = 0x13182860,
            CallbackID_application_getCurrentUserMainCamera                                 = 0x3A67E16D,
            CallbackID_application_getCurrentUserActiveCamera                               = 0x745B626E,
            CallbackID_application_setCurrentUserActiveCamera                               = 0xF49DAFC8,
            CallbackID_application_resetCurrentUserActiveCamera                             = 0xA12EFA53,
            CallbackID_application_getCurrentUserViewportAspectRatio                        = 0xD6917366,
            CallbackID_application_getCurrentUserViewportWidth                              = 0x7FC58DAC,
            CallbackID_application_getCurrentUserViewportHeight                             = 0x810FE85D,
            CallbackID_application_saveCurrentUserViewportToTexture                         = 0x96FBD1EF,
            CallbackID_application_getCurrentUserEnvironmentVariableCount                   = 0xD2DF6242,
            CallbackID_application_getCurrentUserEnvironmentVariableNameAt                  = 0x250D5AEE,
            CallbackID_application_setCurrentUserEnvironmentVariable                        = 0xB0CBBD6B,
            CallbackID_application_getCurrentUserEnvironmentVariable                        = 0xB2CAFD15,
            CallbackID_application_unsetCurrentUserEnvironmentVariable                      = 0x3B5F9AAD,
            CallbackID_application_clearCurrentUserEnvironment                              = 0x8CC96FBE,
            CallbackID_application_saveCurrentUserEnvironment                               = 0xF6ED565B,
            CallbackID_application_setCurrentUserEnvironmentName                            = 0x934BB704,
            CallbackID_application_getCurrentUserEnvironmentName                            = 0x42ED58D0,
            CallbackID_application_setCurrentUserEnvironmentTitle                           = 0xC5F5718E,
            CallbackID_application_setCurrentUserEnvironmentDescription                     = 0xE1F91424,
            CallbackID_application_loadCurrentUserEnvironment                               = 0x43850636,
            CallbackID_application_getCurrentUserEnvironmentVariableStatus                  = 0x403943F2,
            CallbackID_application_saveCurrentUserEnvironmentVariable                       = 0x10DC7B67,
            CallbackID_application_loadCurrentUserEnvironmentVariable                       = 0x44672DE9,
            CallbackID_application_setCurrentUserEnvironmentURL                             = 0xE553D031,
            CallbackID_application_getCurrentUserEnvironmentURL                             = 0xF8DBF595,
            CallbackID_application_checkCurrentUserEnvironmentLocalStorageDevice            = 0x177B6221,
            CallbackID_application_checkCurrentUserEnvironmentLocalStorageSpace             = 0x7C5406A8,
            CallbackID_application_checkCurrentUserEnvironmentLocalStorageWriteAccess       = 0x1BC47815,
            CallbackID_application_checkCurrentUserEnvironmentLocalStorageExistence         = 0x764DA92B,
            CallbackID_application_checkCurrentUserEnvironmentLocalStorageValidity          = 0xF021971C,
            CallbackID_application_getLastFrameTime                                         = 0x3E72C240,
            CallbackID_application_getAverageFrameTime                                      = 0x5F393987,
            CallbackID_application_setMinFrameTime                                          = 0x30A0AAF1,
            CallbackID_application_setMaxFrameTime                                          = 0xA0D3BA1B,
            CallbackID_application_getTotalFrameTime                                        = 0x3EB9A96C,
            CallbackID_application_resetTotalFrameTime                                      = 0x7C026D14,
            CallbackID_application_resetAverageFrameTime                                    = 0x24D68E6B,
            CallbackID_application_setFrameTimeFactor                                       = 0xE029E253,
            CallbackID_application_getFrameTimeFactor                                       = 0xC522694D,
            CallbackID_application_setOption                                                = 0x007B4177,
            CallbackID_application_getOption                                                = 0xF157520A,
            CallbackID_application_restart                                                  = 0x8E7A08D6,
            CallbackID_application_quit                                                     = 0x54EC708A,
            CallbackID_application_mightBeCracked                                           = 0xF11E8373,
            CallbackID_application_flushAIEvents                                            = 0xC23E914D,
       
            CallbackID_cache_addFile                                                        = 0xAC10CECA,
            CallbackID_cache_addStreamFile                                                  = 0x8D35DCF2,
            CallbackID_cache_getFileStatus                                                  = 0x8F37AFA0,  // Deprecated
            CallbackID_cache_pauseFileReceiving                                             = 0xC52B6093,
            CallbackID_cache_resumeFileReceiving                                            = 0xC68799E8,
            CallbackID_cache_cancelFileReceiving                                            = 0xD809AB6E,
            CallbackID_cache_sendFile                                                       = 0x39ECE510,
            CallbackID_cache_getFileSendStatus                                              = 0x7EBDFD75,  // Deprecated
            CallbackID_cache_removeFile                                                     = 0x4BBEFA7C,
            CallbackID_cache_getFileProperty                                                = 0xB83322F3,
            CallbackID_cache_getFileContentAsString                                         = 0x78F451FB,
            CallbackID_cache_copyFileContent                                                = 0x3A2B8193,  // C/C++ addon
            CallbackID_cache_createFile                                                     = 0x8561FEF1,  // C/C++ addon
            CallbackID_cache_empty                                                          = 0x8DF0CADB,
               
            CallbackID_camera_setFieldOfView                                                = 0xBEC04DF6,
            CallbackID_camera_getFieldOfView                                                = 0xC1DEFE81,
            CallbackID_camera_setMinViewDistance                                            = 0xEC31F8DA,
            CallbackID_camera_getMinViewDistance                                            = 0xC93A73C4, 
            CallbackID_camera_setMaxViewDistance                                            = 0xCB8A9FEB, 
            CallbackID_camera_getMaxViewDistance                                            = 0xEE8114F5,                                                                                                  
            CallbackID_camera_projectPoint                                                  = 0x42C2654E,      
            CallbackID_camera_unprojectPoint                                                = 0x8533A523,      
            CallbackID_camera_isPointInFrustum                                              = 0x2EA8CDEF,      
            CallbackID_camera_isSphereInFrustum                                             = 0xFD750B3E,      
            CallbackID_camera_setAspectRatioScale                                           = 0x48741CD8,      
            CallbackID_camera_getAspectRatioScale                                           = 0xB25E2A30,      
            CallbackID_camera_setMotionBlurFactor                                           = 0x1247B807,      
            CallbackID_camera_getMotionBlurFactor                                           = 0xE86D8EEF,      
            CallbackID_camera_setVelocityBlurFactor                                         = 0xB08ABEBF,      
            CallbackID_camera_getVelocityBlurFactor                                         = 0xE997A8E8,      
            CallbackID_camera_setDepthBlurFactor                                            = 0x0C10BB8D,      
            CallbackID_camera_getDepthBlurFactor                                            = 0x291B3093,      
            CallbackID_camera_setDepthBlurFocusRangeMin                                     = 0xC545F3E6,      
            CallbackID_camera_getDepthBlurFocusRangeMin                                     = 0x66EF9E73,      
            CallbackID_camera_setDepthBlurFocusRangeMax                                     = 0xF948CCBF,      
            CallbackID_camera_getDepthBlurFocusRangeMax                                     = 0x5AE2A12A,      
            CallbackID_camera_setDistortionFactor                                           = 0xBDB3342A,      
            CallbackID_camera_getDistortionFactor                                           = 0x479902C2,      
            CallbackID_camera_setDistortionAmplitude                                        = 0x6DFC4EC8,      
            CallbackID_camera_getDistortionAmplitude                                        = 0x98AA9789,      
            CallbackID_camera_setDistortionFrequency                                        = 0x202E6ECA,      
            CallbackID_camera_getDistortionFrequency                                        = 0xD578B78B,      
            CallbackID_camera_setDistortionTiling                                           = 0xFB8629A4,      
            CallbackID_camera_getDistortionTiling                                           = 0x01AC1F4C,             
            CallbackID_camera_setDistortionMapFactor                                        = 0xE60B9C1F,
            CallbackID_camera_getDistortionMapFactor                                        = 0x135D455E,
            CallbackID_camera_setDistortionMapAmplitude                                     = 0xEC3864B7,
            CallbackID_camera_getDistortionMapAmplitude                                     = 0x4F920922,
            CallbackID_camera_setDistortionMapUVOffset                                      = 0xB3AC86C4,
            CallbackID_camera_getDistortionMapUVOffset                                      = 0xA5C167A6,
            CallbackID_camera_setDistortionMapUVScale                                       = 0x9F4D0800,
            CallbackID_camera_getDistortionMapUVScale                                       = 0x9E632FDF,
            CallbackID_camera_setDistortionMapAddressingMode                                = 0xF2B5F134,
            CallbackID_camera_getDistortionMapAddressingMode                                = 0x73DA4116,
            CallbackID_camera_setDistortionMap                                              = 0xDD9A7425,
       
            CallbackID_debug_drawLine                                                       = 0x393077CB,
            CallbackID_debug_getTotalMemoryUsed                                             = 0xDDECC97B,
            CallbackID_debug_getLastFrameTotalDrawCalls                                     = 0x5DDDBA59,
            CallbackID_debug_getLastFrameTotalTriangles                                     = 0xDA8558E9,
            CallbackID_debug_getLastFrameTotalVertices                                      = 0x740F98D4,

            CallbackID_dynamics_getBodyType                                                 = 0xAE9F6969,                                         
            CallbackID_dynamics_createSphereBody                                            = 0x87F0F727,
            CallbackID_dynamics_createBoxBody                                               = 0xD6D859CC,
            CallbackID_dynamics_createCapsuleBody                                           = 0xA528FD1D,
            CallbackID_dynamics_createCompositeBody                                         = 0x6C2181AD,
            CallbackID_dynamics_addCompositeBodySphereGeometry                              = 0x62F0FF35,
            CallbackID_dynamics_addCompositeBodyBoxGeometry                                 = 0x636504F7,
            CallbackID_dynamics_addCompositeBodyCapsuleGeometry                             = 0x0B9ABC77,
            CallbackID_dynamics_finalizeCompositeBody                                       = 0x1C37D371,
            CallbackID_dynamics_destroyBody                                                 = 0x2B06690D,
            CallbackID_dynamics_setOffset                                                   = 0x3D93EF7D,
            CallbackID_dynamics_getOffset                                                   = 0xCCBFFC00,
            CallbackID_dynamics_setMass                                                     = 0x836E0C35,
            CallbackID_dynamics_getMass                                                     = 0x10FFB4E8,
            CallbackID_dynamics_setFriction                                                 = 0x42A16A71,
            CallbackID_dynamics_getFriction                                                 = 0x5C8EDD38,
            CallbackID_dynamics_setBounce                                                   = 0xE6A5D1F4,
            CallbackID_dynamics_getBounce                                                   = 0x1789C289,
            CallbackID_dynamics_setBounceThreshold                                          = 0xBDA84877,
            CallbackID_dynamics_getBounceThreshold                                          = 0x98A3C369,
            CallbackID_dynamics_setLinearDamping                                            = 0xB157DD28,
            CallbackID_dynamics_setLinearDampingEx                                          = 0x3736E125,
            CallbackID_dynamics_getLinearDamping                                            = 0x8341AF31,
            CallbackID_dynamics_setAngularDamping                                           = 0x65BCF35C,
            CallbackID_dynamics_setAngularDampingEx                                         = 0xA0B384F3,
            CallbackID_dynamics_getAngularDamping                                           = 0x01E54DEE,
            CallbackID_dynamics_addForce                                                    = 0xFEDAD148,
            CallbackID_dynamics_addTorque                                                   = 0x8C5DAFF6,
            CallbackID_dynamics_addLinearImpulse                                            = 0xA18BEC30,
            CallbackID_dynamics_addAngularImpulse                                           = 0xE2C93959,
            CallbackID_dynamics_getAngularVelocity                                          = 0x54487AE7,
            CallbackID_dynamics_setAngularVelocity                                          = 0x7143F1F9,
            CallbackID_dynamics_setAngularSpeedLimit                                        = 0xBB730234,
            CallbackID_dynamics_getLinearVelocity                                           = 0x42A61140,
            CallbackID_dynamics_setLinearVelocity                                           = 0x26FFAFF2,
            CallbackID_dynamics_getLinearSpeed                                              = 0xE0E939B4,
            CallbackID_dynamics_setLinearSpeedLimit                                         = 0xD454F0B0,
            CallbackID_dynamics_setGuardBox                                                 = 0x6AAA23F1,
            CallbackID_dynamics_enableDynamics                                              = 0x729BE41E,
            CallbackID_dynamics_enableCollisions                                            = 0xD5392E0F,
            CallbackID_dynamics_enableRotations                                             = 0xDC55C9D0,
            CallbackID_dynamics_enableGuardBox                                              = 0x9FD5A601,
            CallbackID_dynamics_enableGravity                                               = 0x825FC480,
            CallbackID_dynamics_enableAutoIdle                                              = 0xB4621D36,
            CallbackID_dynamics_setAutoIdleLinearThreshold                                  = 0xFA256390,
            CallbackID_dynamics_setAutoIdleAngularThreshold                                 = 0x193ACF19,
            CallbackID_dynamics_setAutoIdleTime                                             = 0x913772F3,
            CallbackID_dynamics_setIdle                                                     = 0x3349E246,
            CallbackID_dynamics_isIdle                                                      = 0x8BA95792,
            CallbackID_dynamics_getLastCollisionTime                                        = 0x651FA19F,
            CallbackID_dynamics_getLastCollisionContactCount                                = 0xA523EF6D,
            CallbackID_dynamics_getLastCollisionContactPositionAt                           = 0x0492775A,
            CallbackID_dynamics_getLastCollisionContactNormalAt                             = 0x9D6F1EA4,
            CallbackID_dynamics_createBallJoint                                             = 0xE18C0C95,
            CallbackID_dynamics_createSliderJoint                                           = 0x4725A6E8,
            CallbackID_dynamics_createHingeJoint                                            = 0x86E4742C,
            CallbackID_dynamics_createHinge2Joint                                           = 0xC96D4E65,
            CallbackID_dynamics_createUniversalJoint                                        = 0x47D4ECD3,
            CallbackID_dynamics_destroyJoint                                                = 0xC6DB7C78,
            CallbackID_dynamics_setBallJointAnchor                                          = 0x305276FC,
            CallbackID_dynamics_setSliderJointAxis                                          = 0x3C13DE47,
            CallbackID_dynamics_setHingeJointAnchor                                         = 0x25D64D37,
            CallbackID_dynamics_setHingeJointAxis                                           = 0xF48155D2,
            CallbackID_dynamics_setHingeJointAxisAngleLimitMin                              = 0x0A1E3C5C,
            CallbackID_dynamics_setHingeJointAxisAngleLimitMax                              = 0x36130305,
            CallbackID_dynamics_setHingeJointAxisAngleLimitERP                              = 0xF9DE9F77,
            CallbackID_dynamics_setHingeJointAxisAngleLimitCFM                              = 0xB0FB5849,
            CallbackID_dynamics_setHinge2JointAnchor                                        = 0x5C0B6C12,
            CallbackID_dynamics_setHinge2JointAxis1                                         = 0xEA6C5C13,
            CallbackID_dynamics_setHinge2JointAxis2                                         = 0x73650DA9,
            CallbackID_dynamics_setHinge2JointAxis1AngleLimitMin                            = 0x8200340F,
            CallbackID_dynamics_setHinge2JointAxis1AngleLimitMax                            = 0xBE0D0B56,
            CallbackID_dynamics_setHinge2JointAxis1AngleLimitERP                            = 0x71C09724,
            CallbackID_dynamics_setHinge2JointAxis1AngleLimitCFM                            = 0x38E5501A,
            CallbackID_dynamics_setHinge2JointAxis2MotorSpeedLimit                          = 0xF27DE27E,
            CallbackID_dynamics_setHinge2JointAxis2MotorAcceleration                        = 0xBF8B6AB5,
            CallbackID_dynamics_setHinge2JointAxis1SuspensionERP                            = 0xA824BD8E,
            CallbackID_dynamics_setHinge2JointAxis1SuspensionCFM                            = 0xE1017AB0,
            CallbackID_dynamics_setUniversalJointAnchor                                     = 0xE3A02226,
            CallbackID_dynamics_setUniversalJointAxis1                                      = 0x91437E20,
            CallbackID_dynamics_setUniversalJointAxis2                                      = 0x084A2F9A,
            CallbackID_dynamics_setUniversalJointAxis1AngleLimitMin                         = 0xD774F5F7,
            CallbackID_dynamics_setUniversalJointAxis1AngleLimitMax                         = 0xEB79CAAE,
            CallbackID_dynamics_setUniversalJointAxis1AngleLimitERP                         = 0x24B456DC,
            CallbackID_dynamics_setUniversalJointAxis1AngleLimitCFM                         = 0x6D9191E2,
            CallbackID_dynamics_setUniversalJointAxis2AngleLimitMin                         = 0xAB15D02C,
            CallbackID_dynamics_setUniversalJointAxis2AngleLimitMax                         = 0x9718EF75,
            CallbackID_dynamics_setUniversalJointAxis2AngleLimitERP                         = 0x58D57307,
            CallbackID_dynamics_setUniversalJointAxis2AngleLimitCFM                         = 0x11F0B439,

            CallbackID_group_getSubObjectCount                                              = 0xFC36F255,
            CallbackID_group_getSubObjectAt                                                 = 0x89D1AEB6,

            CallbackID_hashtable_isEmpty                                                    = 0x618A33AE,
            CallbackID_hashtable_getSize                                                    = 0xF1FA5EEF,
            CallbackID_hashtable_get                                                        = 0xB2F5BD3B,
            CallbackID_hashtable_getIndex                                                   = 0x1DA72AD4,
            CallbackID_hashtable_getAt                                                      = 0x76B14B62,
            CallbackID_hashtable_getKeyAt                                                   = 0x5CC6631B,
            CallbackID_hashtable_set                                                        = 0xA9DAB697,
            CallbackID_hashtable_empty                                                      = 0x124C263A,
            CallbackID_hashtable_add                                                        = 0xB2D4E0AC,
            CallbackID_hashtable_remove                                                     = 0x32FF4930,
            CallbackID_hashtable_contains                                                   = 0xE2FCA5EC,

            CallbackID_hud_checkValidity                                                    = 0xB225C06B,  // Deprecated
            CallbackID_hud_newTemplateInstance                                              = 0xF405A5D2,
            CallbackID_hud_destroyTemplateInstance                                          = 0x88910A5F,
            CallbackID_hud_newComponent                                                     = 0x11603C8C,
            CallbackID_hud_newAction                                                        = 0x7619A140,
            CallbackID_hud_newTimer                                                         = 0xD173E3B4,
            CallbackID_hud_destroyComponent                                                 = 0x89B3A1A6,
            CallbackID_hud_destroyAction                                                    = 0x97662A9A,
            CallbackID_hud_destroyTimer                                                     = 0xA06021FF,
            CallbackID_hud_getComponentCount                                                = 0xE1367778,
            CallbackID_hud_getActionCount                                                   = 0x5A662670,
            CallbackID_hud_getTimerCount                                                    = 0xB57665DA,
            CallbackID_hud_getComponentAt                                                   = 0x9E424E8E,
            CallbackID_hud_getActionAt                                                      = 0xECBB71BC,
            CallbackID_hud_getTimerAt                                                       = 0x34E3FCBA,
            CallbackID_hud_setInitialAction                                                 = 0xDF9F0F44,  // Deprecated
            CallbackID_hud_setDefaultFont                                                   = 0x590EF84F,
            CallbackID_hud_getDefaultFontName                                               = 0x2F8EF4FB,
            CallbackID_hud_setDefaultTextShadowColor                                        = 0xB38F7B17,
            CallbackID_hud_getDefaultTextShadowColor                                        = 0x10251682,
            CallbackID_hud_getComponent                                                     = 0x67FEBD1E,
            CallbackID_hud_getAction                                                        = 0xEB520D86,
            CallbackID_hud_setFocus                                                         = 0xB8492113,
            CallbackID_hud_setSoundBank                                                     = 0xBEF81C10,
            CallbackID_hud_getSoundBankName                                                 = 0x799E5B94,
            CallbackID_hud_playSound                                                        = 0x2BB8E5EF,
            CallbackID_hud_pauseSound                                                       = 0x664728DF,
            CallbackID_hud_resumeSound                                                      = 0x3A0047A7,
            CallbackID_hud_stopSound                                                        = 0xCA5BD921,
            CallbackID_hud_stopAllSounds                                                    = 0x7E921F03,
            CallbackID_hud_setSoundVolume                                                   = 0x6957DA39,
            CallbackID_hud_getSoundPlaybackProgress                                         = 0x56B7D115,
            CallbackID_hud_isSoundPlaying                                                   = 0xF915AB9D,
            CallbackID_hud_isSoundPaused                                                    = 0xC502A560,
            CallbackID_hud_setCursorVisible                                                 = 0xE3BA3709,
            CallbackID_hud_setCursorPosition                                                = 0x2DDEBFDE,
            CallbackID_hud_getCursorPosition                                                = 0x4987016C,
            CallbackID_hud_forceCursorShape                                                 = 0xE316BCB7,
            CallbackID_hud_getComponentType                                                 = 0x08458D30,
            CallbackID_hud_setComponentZOrder                                               = 0x31BC59D2,
            CallbackID_hud_getComponentZOrder                                               = 0x14B7D2CC,
            CallbackID_hud_setComponentContainer                                            = 0x140F5C1C,
            CallbackID_hud_getComponentContainer                                            = 0x4D124A4B,
            CallbackID_hud_setComponentOrigin                                               = 0x06FCCB49,
            CallbackID_hud_getComponentOrigin                                               = 0x23F74057,
            CallbackID_hud_setComponentOffscreenOutput                                      = 0x61F82D87,
            CallbackID_hud_setComponentPosition                                             = 0x3D681892,
            CallbackID_hud_getComponentPosition                                             = 0x934358EE,
            CallbackID_hud_setComponentSize                                                 = 0x414D8C6A,
            CallbackID_hud_getComponentSize                                                 = 0x735BFE73,
            CallbackID_hud_setComponentRotation                                             = 0x52386496,
            CallbackID_hud_getComponentRotation                                             = 0xFC1324EA,
            CallbackID_hud_setComponentOpacity                                              = 0xB62AA4AC,
            CallbackID_hud_getComponentOpacity                                              = 0x4C009244,
            CallbackID_hud_setComponentVisible                                              = 0x8F672193,
            CallbackID_hud_setComponentActive                                               = 0x93136155,
            CallbackID_hud_setComponentBackgroundImage                                      = 0x9D47346C,
            CallbackID_hud_getComponentBackgroundImageName                                  = 0x48E4CCA0,
            CallbackID_hud_setComponentBackgroundColor                                      = 0x3E2C78DA,
            CallbackID_hud_getComponentBackgroundColor                                      = 0x0119B8CA,
            CallbackID_hud_setComponentForegroundColor                                      = 0xFF6BE478,
            CallbackID_hud_getComponentForegroundColor                                      = 0xC05E2468,
            CallbackID_hud_setComponentBorderColor                                          = 0xB3D62D64,
            CallbackID_hud_getComponentBorderColor                                          = 0xB2F80ABB,
            CallbackID_hud_setComponentFillMode                                             = 0x2384E1E0,
            CallbackID_hud_getComponentFillMode                                             = 0x8DAFA19C,
            CallbackID_hud_setComponentBlendMode                                            = 0x510B5313,
            CallbackID_hud_getComponentBlendMode                                            = 0x08164544,
            CallbackID_hud_setComponentShapeType                                            = 0x851D7511,
            CallbackID_hud_getComponentShapeType                                            = 0xDC006346,
            CallbackID_hud_setComponentShapeRoundRectangleCornerRadius                      = 0x9535F9EA,
            CallbackID_hud_getComponentShapeRoundRectangleCornerRadius                      = 0xF8125E71,
            CallbackID_hud_setComponentOpacityWaveModifier                                  = 0x277D73BF,
            CallbackID_hud_setComponentAspectInvariant                                      = 0x60FAAC2E,
            CallbackID_hud_setComponentIgnoredByMouse                                       = 0xB19EAB87,
            CallbackID_hud_setComponentAdjustedToNearestPixels                              = 0x69214BF0,
            CallbackID_hud_addComponentEventHandler                                         = 0x4AB9C89C,
            CallbackID_hud_removeComponentEventHandler                                      = 0x58FEF263,
            CallbackID_hud_getComponentScreenSpaceCenter                                    = 0x27EB8F38,
            CallbackID_hud_getComponentScreenSpaceBottomLeftCorner                          = 0x74B86E4D,
            CallbackID_hud_getComponentScreenSpaceTopLeftCorner                             = 0x7886C495,
            CallbackID_hud_getComponentScreenSpaceBottomRightCorner                         = 0x2800CB48,
            CallbackID_hud_getComponentScreenSpaceTopRightCorner                            = 0xA004AF04,
            CallbackID_hud_matchComponentScreenSpaceCenter                                  = 0x421E7E1C,
            CallbackID_hud_matchComponentScreenSpaceBottomLeftCorner                        = 0xDD866352,
            CallbackID_hud_matchComponentScreenSpaceTopLeftCorner                           = 0x1196CBBA,
            CallbackID_hud_matchComponentScreenSpaceBottomRightCorner                       = 0xA5A1F8B0,
            CallbackID_hud_matchComponentScreenSpaceTopRightCorner                          = 0x0BBC8252,
            CallbackID_hud_setComponentBackgroundImageUVOffset                              = 0x37267DC3,
            CallbackID_hud_getComponentBackgroundImageUVOffset                              = 0xF0466A2A,
            CallbackID_hud_setComponentBackgroundImageUVScale                               = 0xABF7D113,
            CallbackID_hud_getComponentBackgroundImageUVScale                               = 0x1C488C68,
            CallbackID_hud_setComponentBackgroundImageAddressingMode                        = 0xB48C45C3,
            CallbackID_hud_getComponentBackgroundImageAddressingMode                        = 0xF8C133DD,
            CallbackID_hud_isComponentVisible                                               = 0x293EB9C2,
            CallbackID_hud_isComponentActive                                                = 0x76DC57F0,
            CallbackID_hud_getComponentTag                                                  = 0x26127090,
            CallbackID_hud_setLabelText                                                     = 0xC32E827D,
            CallbackID_hud_getLabelText                                                     = 0xCC3054FE,
            CallbackID_hud_setLabelTextHeight                                               = 0x5D7FEDC0,
            CallbackID_hud_getLabelTextHeight                                               = 0x787466DE,
            CallbackID_hud_setLabelTextLetterSpacing                                        = 0x1C5C652F,
            CallbackID_hud_getLabelTextLetterSpacing                                        = 0xBFF608BA,
            CallbackID_hud_setLabelTextLineSpacing                                          = 0x04A1843C,
            CallbackID_hud_getLabelTextLineSpacing                                          = 0x058FA3E3,
            CallbackID_hud_setLabelTextAlignment                                            = 0xB6331401,
            CallbackID_hud_getLabelTextAlignment                                            = 0xEF2E0256,
            CallbackID_hud_setLabelTextCase                                                 = 0xAAB41BB3,
            CallbackID_hud_getLabelTextCase                                                 = 0x98A269AA,
            CallbackID_hud_setLabelTextEncoding                                             = 0x2AF112CE,
            CallbackID_hud_getLabelTextEncoding                                             = 0x84DA52B2,
            CallbackID_hud_setLabelTextDirection                                            = 0xA4B7DBEE,
            CallbackID_hud_getLabelTextDirection                                            = 0xFDAACDB9,
            CallbackID_hud_setLabelTextDisplayRange                                         = 0xD98E3345,
            CallbackID_hud_getLabelTextDisplayRange                                         = 0xCFE3D227,
            CallbackID_hud_setLabelFont                                                     = 0x28312D68,
            CallbackID_hud_getLabelFontName                                                 = 0xF1E80636,
            CallbackID_hud_enableLabelTextAntialiasing                                      = 0xF936556B,
            CallbackID_hud_isLabelTextAntialiasingEnabled                                   = 0xEA48594A,
            CallbackID_hud_getLabelTextTotalLineCount                                       = 0x99F4877D,
            CallbackID_hud_setEditText                                                      = 0xB1BAA90C,
            CallbackID_hud_getEditText                                                      = 0xAF951E45,
            CallbackID_hud_setEditTextHeight                                                = 0x4E47E77C,
            CallbackID_hud_getEditTextHeight                                                = 0x2A1E59CE,
            CallbackID_hud_setEditTextLetterSpacing                                         = 0x89EF68AB,
            CallbackID_hud_getEditTextLetterSpacing                                         = 0x9F8289C9,
            CallbackID_hud_setEditTextLineSpacing                                           = 0xF5BC74F7,
            CallbackID_hud_getEditTextLineSpacing                                           = 0x00EAADB6,
            CallbackID_hud_setEditTextAlignment                                             = 0xA89A4372,
            CallbackID_hud_getEditTextAlignment                                             = 0x06B1030E,
            CallbackID_hud_setEditTextCase                                                  = 0xE6092A45,
            CallbackID_hud_getEditTextCase                                                  = 0x2817D069,
            CallbackID_hud_setEditTextEncoding                                              = 0x8254095C,
            CallbackID_hud_getEditTextEncoding                                              = 0x787E3FB4,
            CallbackID_hud_setEditTextDirection                                             = 0xBA1E8C9D,
            CallbackID_hud_getEditTextDirection                                             = 0x1435CCE1,
            CallbackID_hud_setEditTextDisplayRange                                          = 0xD5C9358D,
            CallbackID_hud_getEditTextDisplayRange                                          = 0xD4E71252,
            CallbackID_hud_setEditTextMaxLength                                             = 0xBBA42B3D,
            CallbackID_hud_getEditTextMaxLength                                             = 0x158F6B41,
            CallbackID_hud_setEditFont                                                      = 0x5AA50619,
            CallbackID_hud_getEditFontName                                                  = 0x415DBFF5,
            CallbackID_hud_setEditOnChangedAction                                           = 0xBFEC11DF,
            CallbackID_hud_setEditSecure                                                    = 0xF968F3B7,
            CallbackID_hud_isEditSecure                                                     = 0x3407DF45,
            CallbackID_hud_enableEditTextAntialiasing                                       = 0x6C0DD94E,
            CallbackID_hud_isEditTextAntialiasingEnabled                                    = 0xACCCD313,
            CallbackID_hud_getEditTextTotalLineCount                                        = 0x50D8D37A,
            CallbackID_hud_setCheckText                                                     = 0xA2065704,
            CallbackID_hud_getCheckText                                                     = 0xAD188187,
            CallbackID_hud_setCheckTextHeight                                               = 0x1CD46726,
            CallbackID_hud_getCheckTextHeight                                               = 0x39DFEC38,
            CallbackID_hud_setCheckTextLetterSpacing                                        = 0xE7585063,
            CallbackID_hud_getCheckTextLetterSpacing                                        = 0x44F23DF6,
            CallbackID_hud_setCheckTextLineSpacing                                          = 0x1D9E2CD9,
            CallbackID_hud_getCheckTextLineSpacing                                          = 0x1CB00B06,
            CallbackID_hud_setCheckTextAlignment                                            = 0x9B34B2F3,
            CallbackID_hud_getCheckTextAlignment                                            = 0xC229A4A4,
            CallbackID_hud_setCheckTextCase                                                 = 0x5029FC1A,
            CallbackID_hud_getCheckTextCase                                                 = 0x623F8E03,
            CallbackID_hud_setCheckTextEncoding                                             = 0x2FB86D31,
            CallbackID_hud_getCheckTextEncoding                                             = 0x81932D4D,
            CallbackID_hud_setCheckTextDirection                                            = 0x89B07D1C,
            CallbackID_hud_getCheckTextDirection                                            = 0xD0AD6B4B,
            CallbackID_hud_setCheckIcons                                                    = 0x089E4E84,
            CallbackID_hud_setCheckFont                                                     = 0x4919F811,
            CallbackID_hud_getCheckFontName                                                 = 0x0B75E19F,
            CallbackID_hud_setCheckOnCheckedAction                                          = 0xF4DD42D7,
            CallbackID_hud_setCheckOnUncheckedAction                                        = 0xB42A5BBF,
            CallbackID_hud_getCheckState                                                    = 0xD5D9004D,
            CallbackID_hud_setCheckState                                                    = 0xA167CC01,
            CallbackID_hud_enableCheckTextAntialiasing                                      = 0x294F7C34,
            CallbackID_hud_isCheckTextAntialiasingEnabled                                   = 0xCDE0AFCD,
            CallbackID_hud_getCheckTextTotalLineCount                                       = 0xE6658EF3,
            CallbackID_hud_setButtonText                                                    = 0xA25CC7D1,
            CallbackID_hud_getButtonText                                                    = 0xD6E20B9D,
            CallbackID_hud_setButtonTextHeight                                              = 0x2B91226C,
            CallbackID_hud_getButtonTextHeight                                              = 0xD1BB1484,
            CallbackID_hud_setButtonTextLetterSpacing                                       = 0xA559F6AA,
            CallbackID_hud_getButtonTextLetterSpacing                                       = 0x259F3B0C,
            CallbackID_hud_setButtonTextLineSpacing                                         = 0x45412B21,
            CallbackID_hud_getButtonTextLineSpacing                                         = 0x532CCA43,
            CallbackID_hud_setButtonTextAlignment                                           = 0x6D81B48D,
            CallbackID_hud_getButtonTextAlignment                                           = 0x98D76DCC,
            CallbackID_hud_setButtonTextCase                                                = 0xFCE4B89F,
            CallbackID_hud_getButtonTextCase                                                = 0x98BD062D,
            CallbackID_hud_setButtonTextEncoding                                            = 0x239848E4,
            CallbackID_hud_getButtonTextEncoding                                            = 0x7A855EB3,
            CallbackID_hud_setButtonTextDirection                                           = 0x7F057B62,
            CallbackID_hud_getButtonTextDirection                                           = 0x8A53A223,
            CallbackID_hud_setButtonFont                                                    = 0x494368C4,
            CallbackID_hud_getButtonFontName                                                = 0xF1F769B1,
            CallbackID_hud_setButtonOnClickAction                                           = 0xEE6E2C50,
            CallbackID_hud_setButtonOnClickedAction                                         = 0xA51EEC97,
            CallbackID_hud_enableButtonTextAntialiasing                                     = 0x44533B52,
            CallbackID_hud_isButtonTextAntialiasingEnabled                                  = 0xC00D67FB,
            CallbackID_hud_getButtonTextTotalLineCount                                      = 0xBB6CF8F7,
            CallbackID_hud_setMovieClip                                                     = 0xBE372D7B,
            CallbackID_hud_setMovieExternalClip                                             = 0xCF2F17FF,
            CallbackID_hud_getMovieBufferingProgress                                        = 0x295CD13B,
            CallbackID_hud_getMoviePlaybackProgress                                         = 0x0B4288C7,
            CallbackID_hud_getMoviePlaybackCursor                                           = 0xC9D5A50F,
            CallbackID_hud_setMovieTransparentColor                                         = 0x59F9952C,
            CallbackID_hud_playMovie                                                        = 0xCE68D404,
            CallbackID_hud_pauseMovie                                                       = 0x83971934,
            CallbackID_hud_stopMovie                                                        = 0x2F8BE8CA,
            CallbackID_hud_setRenderMap                                                     = 0x0DE0447F,
            CallbackID_hud_getRenderMapName                                                 = 0xA807B9A6,
            CallbackID_hud_setPixelMap                                                      = 0xEE903298,
            CallbackID_hud_getPixelMapName                                                  = 0x59E796C4,
            CallbackID_hud_getPixelMap                                                      = 0xF0BF85D1,
            CallbackID_hud_setProgressValue                                                 = 0x9CFA1A97,
            CallbackID_hud_getProgressValue                                                 = 0xAEEC688E,
            CallbackID_hud_setProgressType                                                  = 0xBF8A39FD,
            CallbackID_hud_getProgressType                                                  = 0x7194C3D1,
            CallbackID_hud_getListItemCount                                                 = 0x2CA7EB49,
            CallbackID_hud_addListItem                                                      = 0xFC672486,
            CallbackID_hud_removeListItemAt                                                 = 0x9C5747A8,
            CallbackID_hud_selectListItemAt                                                 = 0x6EACD08E,
            CallbackID_hud_removeListAllItems                                               = 0x986B89D2,
            CallbackID_hud_selectListAllItems                                               = 0x35DEFEEA,
            CallbackID_hud_getListItemTextAt                                                = 0x9FCF1238,
            CallbackID_hud_setListItemTextAt                                                = 0xFB96AC8A,
            CallbackID_hud_setListItemIconAt                                                = 0x17E101EF,
            CallbackID_hud_setListItemsHeight                                               = 0xD9600CBE,
            CallbackID_hud_getListItemsHeight                                               = 0xFC6B87A0,
            CallbackID_hud_setListItemsBackgroundImage                                      = 0xBDCF31F4,
            CallbackID_hud_getListItemsBackgroundImageName                                  = 0xFEEFF58B,
            CallbackID_hud_setListItemsBackgroundColor                                      = 0x1EA47D42,
            CallbackID_hud_setListItemsBackgroundColorOdd                                   = 0xF7FD21F7,
            CallbackID_hud_getListItemsBackgroundColorOdd                                   = 0x769291D5,
            CallbackID_hud_setListItemsBackgroundColorEven                                  = 0x32229F77,
            CallbackID_hud_getListItemsBackgroundColorEven                                  = 0xE7C3B123,
            CallbackID_hud_setListItemsBackgroundImageSelected                              = 0x1C030942,
            CallbackID_hud_getListItemsBackgroundImageSelectedName                          = 0x2D12F27E,
            CallbackID_hud_setListItemsBackgroundColorSelected                              = 0xDA85D3B0,
            CallbackID_hud_getListItemsBackgroundColorSelected                              = 0x1DE5C459,
            CallbackID_hud_setListItemsForegroundColorSelected                              = 0xDCADD4B6,
            CallbackID_hud_getListItemsForegroundColorSelected                              = 0x1BCDC35F,
            CallbackID_hud_setListTextLeftMargin                                            = 0x91721DF4,
            CallbackID_hud_getListTextLeftMargin                                            = 0xC86F0BA3,
            CallbackID_hud_setListTextRightMargin                                           = 0x50570C50,
            CallbackID_hud_getListTextRightMargin                                           = 0xA501D511,
            CallbackID_hud_setListTextHeight                                                = 0x41127DDF,
            CallbackID_hud_getListTextHeight                                                = 0x254BC36D,
            CallbackID_hud_setListTextLetterSpacing                                         = 0xEBC1C490,
            CallbackID_hud_getListTextLetterSpacing                                         = 0xFDAC25F2,
            CallbackID_hud_setListTextLineSpacing                                           = 0xFD2960E5,
            CallbackID_hud_getListTextLineSpacing                                           = 0x087FB9A4,
            CallbackID_hud_setListTextFont                                                  = 0x2824DD24,
            CallbackID_hud_getListTextFontName                                              = 0x6A673086,
            CallbackID_hud_setListTextCase                                                  = 0x80B84CF2,
            CallbackID_hud_getListTextCase                                                  = 0x4EA6B6DE,
            CallbackID_hud_setListTextEncoding                                              = 0x17A49379,
            CallbackID_hud_getListTextEncoding                                              = 0xED8EA591,
            CallbackID_hud_setListTextDirection                                             = 0xF18FA840,
            CallbackID_hud_getListTextDirection                                             = 0x5FA4E83C,
            CallbackID_hud_enableListTextAntialiasing                                       = 0x9FBC3D12,
            CallbackID_hud_isListTextAntialiasingEnabled                                    = 0x7C1891A9,
            CallbackID_hud_getListColumnCount                                               = 0x06716DA6,
            CallbackID_hud_addListColumn                                                    = 0xB3CC5486,
            CallbackID_hud_setListColumnTextAlignmentAt                                     = 0xE8271F8F,
            CallbackID_hud_setListColumnWidthAt                                             = 0xA8769104,
            CallbackID_hud_enableListSelection                                              = 0x3DD54AA5,
            CallbackID_hud_enableListSingleSelection                                        = 0xFAB0D21D,
            CallbackID_hud_enableListSingleSelectionToggling                                = 0x2AA1ED3F,
            CallbackID_hud_enableListSmoothScrolling                                        = 0xFE62F075,
            CallbackID_hud_enableListFingerScrolling                                        = 0x4CD93A47, // Warning: wrong CRC
            CallbackID_hud_enableListMouseWheelHandling                                     = 0xB37E05C5,
            CallbackID_hud_getListSelectedItemCount                                         = 0x15FCFA34,
            CallbackID_hud_getListSelectedItemAt                                            = 0x728F1E6D,
            CallbackID_hud_setListVerticalScrollPos                                         = 0x0CBE389D,
            CallbackID_hud_getListVerticalScrollPos                                         = 0x1AD3D9FF,
            CallbackID_hud_setListVerticalScrollBarWidth                                    = 0x975A5B7C,
            CallbackID_hud_setListVerticalScrollBarArrowHeight                              = 0x6BBE1CDC,
            CallbackID_hud_setListScrollBarBackgroundColor                                  = 0x38D62516,
            CallbackID_hud_setListScrollBarForegroundColor                                  = 0xF991B9B4,
            CallbackID_hud_setListScrollBarArrowColor                                       = 0x0B9F7B9E,
            CallbackID_hud_setListScrollBarBackgroundImages                                 = 0xCD43D18A,
            CallbackID_hud_setListScrollBarForegroundImages                                 = 0xF55A54D2,
            CallbackID_hud_setListScrollBarArrowImages                                      = 0x2E1393C6,
            CallbackID_hud_setListOnSelectionChangedAction                                  = 0x590C0EFF,
            CallbackID_hud_setSliderType                                                    = 0x59EDC812,
            CallbackID_hud_getSliderType                                                    = 0x2D53045E,
            CallbackID_hud_setSliderRange                                                   = 0x225980F2,
            CallbackID_hud_getSliderRange                                                   = 0x5D473385,
            CallbackID_hud_setSliderValue                                                   = 0xACA9828F,
            CallbackID_hud_getSliderValue                                                   = 0xD3B731F8,
            CallbackID_hud_setSliderThumbImage                                              = 0x84408136, // Warning: wrong CRC
            CallbackID_hud_setSliderOnChangedAction                                         = 0xBAB65C88,
            CallbackID_hud_beginActionCommand                                               = 0x7EE31CCD,
            CallbackID_hud_pushActionCommandArgument                                        = 0xDF2046B2,
            CallbackID_hud_pushActionCommandRuntimeArgument                                 = 0xF89743C8,
            CallbackID_hud_endActionCommand                                                 = 0x6A64FA3D,
            CallbackID_hud_setTimerOnTickAction                                             = 0x36E4696B,
            CallbackID_hud_setTimerTickTime                                                 = 0xEEDBECE1,
            CallbackID_hud_startTimer                                                       = 0x6F756C27,
            CallbackID_hud_stopTimer                                                        = 0x5805C4BF,
            CallbackID_hud_callAction                                                       = 0x0E4A7960,
            CallbackID_hud_stopAction                                                       = 0xE1420EEF,
            CallbackID_hud_pauseAction                                                      = 0xBBEBCD05,
            CallbackID_hud_resumeAction                                                     = 0xE5697364,
            CallbackID_hud_stopAllActions                                                   = 0x5674D3C6,
            CallbackID_hud_pauseAllActions                                                  = 0x8824E5C9,
            CallbackID_hud_resumeAllActions                                                 = 0x4118208F,
            CallbackID_hud_isActionRunning                                                  = 0x9403E47A,
            CallbackID_hud_isActionPaused                                                   = 0x6F9B582E,
            CallbackID_hud_getUnderCursorComponent                                          = 0x7B49CE20,
            CallbackID_hud_getUnderCursorListItem                                           = 0x8CC29BDB,
            CallbackID_hud_getFocusedComponent                                              = 0xA58D9C44,
            CallbackID_hud_enterModalMode                                                   = 0xDD00E362,
            CallbackID_hud_leaveModalMode                                                   = 0xF2420136,
            CallbackID_hud_getComponentAtPoint                                              = 0x9FA503E7,

            CallbackID_input_setJoypadVibrationsMagnitude                                   = 0x7BB71948,
            CallbackID_input_getJoypadType                                                  = 0x552514F7,
            CallbackID_input_enableJoypadMotionSensors                                      = 0x4AA54853,
            CallbackID_input_enableJoypadIRMotionSensors                                    = 0xF373F185,
            CallbackID_input_enableMultiTouch                                               = 0xDCFA5AAA,
            CallbackID_input_enableVirtualMouse                                             = 0xDFE69328,
            CallbackID_input_setVirtualMousePosition                                        = 0x5EC6AC3F,
            CallbackID_input_setVirtualMouseButtonDown                                      = 0xB7AA2BC5,

            CallbackID_light_getType                                                        = 0x4E235895,
            CallbackID_light_isDynamic                                                      = 0x1DEA611D,
            CallbackID_light_isActive                                                       = 0xB9B17637,
            CallbackID_light_setActive                                                      = 0x62FDD1A7,
            CallbackID_light_setColor                                                       = 0x5CB27590,
            CallbackID_light_getColor                                                       = 0xA4434A41,
            
            CallbackID_log_message                                                          = 0x7347F97E,
            CallbackID_log_warning                                                          = 0x85B455C7,
            CallbackID_log_error                                                            = 0x7069629B,
                    
            CallbackID_math_clamp                                                           = 0xD2393966,
            CallbackID_math_interpolate                                                     = 0xDA2969A9,
            CallbackID_math_sin                                                             = 0x464F82CF,
            CallbackID_math_cos                                                             = 0x6F35EAE0,
            CallbackID_math_tan                                                             = 0x8BD91E42,
            CallbackID_math_asin                                                            = 0xD7751C04,
            CallbackID_math_acos                                                            = 0xFE0F742B,
            CallbackID_math_atan                                                            = 0x1AE38089,
            CallbackID_math_atan2                                                           = 0x8EAB6609,
            CallbackID_math_min                                                             = 0x50F70CB5,
            CallbackID_math_max                                                             = 0x6CFA33EC,
            CallbackID_math_sqrt                                                            = 0x7AB5659E,
            CallbackID_math_resetRandomSeed                                                 = 0x3BEE1942,
            CallbackID_math_random                                                          = 0xEFF03FF4,
            CallbackID_math_gaussianRandom                                                  = 0xE08B4A79,
            CallbackID_math_pow                                                             = 0x763833D0,
            CallbackID_math_floor                                                           = 0xCC7F98B2,
            CallbackID_math_trunc                                                           = 0x04834BE9,
            CallbackID_math_roundToNearestInteger                                           = 0xA75D6C82,
            CallbackID_math_roundToNearestPowerOfTwo                                        = 0x52FAD7EA,
            CallbackID_math_ceil                                                            = 0x8BD96A61,
            CallbackID_math_abs                                                             = 0xD91F40C3,
            CallbackID_math_mod                                                             = 0xE678422D,
            CallbackID_math_log                                                             = 0x7EB379A0,
            CallbackID_math_log10                                                           = 0x26832E23,
            CallbackID_math_evaluateBSpline                                                 = 0x3CDF24BE,
            CallbackID_math_evaluateBezier                                                  = 0x2C09638D,
            CallbackID_math_evaluateCatmullRom                                              = 0xD7BFECAA,
            CallbackID_math_computeRayPlaneIntersection                                     = 0x1FE83EDD,
            CallbackID_math_computeRaySphereIntersection                                    = 0x926BAD4B,
            CallbackID_math_computeRayAABoxIntersection                                     = 0x66F626F2,
            CallbackID_math_vectorAdd                                                       = 0x21244DA0,
            CallbackID_math_vectorSubtract                                                  = 0xD80753CB,
            CallbackID_math_vectorDotProduct                                                = 0xDC92D2C0,
            CallbackID_math_vectorCrossProduct                                              = 0x7FC56AAE,
            CallbackID_math_vectorNormalize                                                 = 0x5679BCBE,
            CallbackID_math_vectorLength                                                    = 0xF40C03FD,
            CallbackID_math_vectorScale                                                     = 0x921F3DD3,
            CallbackID_math_vectorInterpolate                                               = 0x36DC1C3C,
            CallbackID_math_vectorReflect                                                   = 0x6812E3D5,
            CallbackID_math_vectorSetLength                                                 = 0x8033F48B,
            
            CallbackID_mesh_getSubsetCount                                                  = 0x173F69C0,
            CallbackID_mesh_getSubsetVertexCount                                            = 0x6052CBEE,
            CallbackID_mesh_getSubsetIndexCount                                             = 0x041A3CB1,
            CallbackID_mesh_getSubsetLODCount                                               = 0xF5692F32,
            CallbackID_mesh_addSubset                                                       = 0x170A22F8,
            CallbackID_mesh_removeSubset                                                    = 0xCDAAF3C7,
            CallbackID_mesh_createSubsetVertexBuffer                                        = 0xFC73B640,
            CallbackID_mesh_destroySubsetVertexBuffer                                       = 0x8C4CF344,
            CallbackID_mesh_createSubsetIndexBuffer                                         = 0x35CA1E9D,
            CallbackID_mesh_destroySubsetIndexBuffer                                        = 0x607B9598,
            CallbackID_mesh_lockSubsetVertexBuffer                                          = 0x4B6B4F74,
            CallbackID_mesh_unlockSubsetVertexBuffer                                        = 0xDAE9AA84,
            CallbackID_mesh_lockSubsetIndexBuffer                                           = 0x906F11E3,
            CallbackID_mesh_unlockSubsetIndexBuffer                                         = 0x76E676AD,
            CallbackID_mesh_setSubsetVertexPosition                                         = 0x695CFF07,
            CallbackID_mesh_getSubsetVertexPosition                                         = 0x6872D8D8,
            CallbackID_mesh_setSubsetVertexNormal                                           = 0x9C733A37,
            CallbackID_mesh_getSubsetVertexNormal                                           = 0xC56E2C60,
            CallbackID_mesh_setSubsetVertexTexCoord                                         = 0x34FC40FB,
            CallbackID_mesh_getSubsetVertexTexCoord                                         = 0x35D26724,
            CallbackID_mesh_setSubsetIndexValue                                             = 0x669E160F,
            CallbackID_mesh_getSubsetIndexValue                                             = 0x9CB420E7,
            CallbackID_mesh_getResourceHandle                                               = 0xC1022106,
            CallbackID_mesh_setSubsetVertexBufferDynamic                                    = 0xAB50CAF1,
            CallbackID_mesh_isSubsetVertexBufferDynamic                                     = 0x49F18979,
            CallbackID_mesh_setSubsetIndexBufferDynamic                                     = 0x2B8B93F4,
            CallbackID_mesh_isSubsetIndexBufferDynamic                                      = 0x32B20F3D,
            CallbackID_mesh_computeSubsetVertexNormals                                      = 0xA47F23C3,
            CallbackID_mesh_computeSubsetVertexTangents                                     = 0x59807A23,
            CallbackID_mesh_updateBoundingVolumes                                           = 0xD39C8E06,

            CallbackID_microphone_setRate                                                   = 0xE5C21961,
            CallbackID_microphone_enable                                                    = 0x2620D09B,
            CallbackID_microphone_getActivityLevel                                          = 0xFB2CD432,
            CallbackID_microphone_enableSpectrumAnalyzer                                    = 0x3A9BFD99,
            CallbackID_microphone_setSpectrumWidth                                          = 0x395AC68A,
            CallbackID_microphone_getSpectrumWidth                                          = 0x0B4CB493,
            CallbackID_microphone_getSpectrumLevels                                         = 0x5D7ACD4F,
            CallbackID_microphone_setRecordingQuality                                       = 0xC74C589A,
            CallbackID_microphone_startRecordingAsMusic                                     = 0x7C3D73DC,
            CallbackID_microphone_stopRecording                                             = 0x58125909,
            CallbackID_microphone_startDiffusion                                            = 0x54B50A55,
            CallbackID_microphone_stopDiffusion                                             = 0xBA793301,
            CallbackID_microphone_addUserToDiffusionList                                    = 0xB5847290,
            CallbackID_microphone_removeUserFromDiffusionList                               = 0xF38AA6D2,
            CallbackID_microphone_isUserInDiffusionList                                     = 0x2E20451C,
            CallbackID_microphone_emptyDiffusionList                                        = 0x6B7D14EB,
            CallbackID_microphone_getDiffusionListUserCount                                 = 0xA5E4A776,
            CallbackID_microphone_getDiffusionListUserIDAt                                  = 0xFC952E9D,

            CallbackID_music_play                                                           = 0x5FB0363B,
            CallbackID_music_stop                                                           = 0xB86FFE37,
            CallbackID_music_setVolume                                                      = 0x0D13C7B9,
            CallbackID_music_getPlaybackProgress                                            = 0xD3540E59,
            CallbackID_music_playAdditional                                                 = 0x0ADED058,
                    
            CallbackID_navigation_setTargetNode                                             = 0x73239262,
            CallbackID_navigation_setAcceleration                                           = 0x215C1BC6,
            CallbackID_navigation_getAcceleration                                           = 0xEF42E1EA,
            CallbackID_navigation_setSpeedLimit                                             = 0x70D7CB86,
            CallbackID_navigation_getSpeedLimit                                             = 0x046907CA,
            CallbackID_navigation_setHeightOffset                                           = 0xCE9FAAFA,
            CallbackID_navigation_getHeightOffset                                           = 0x008150D6,
            CallbackID_navigation_getNode                                                   = 0xF046C0B1,
            CallbackID_navigation_getTargetNode                                             = 0x079D5E2E,
            CallbackID_navigation_getTargetNodeDistance                                     = 0x692AC3D4,
            CallbackID_navigation_getSpeed                                                  = 0xB583F1DB,
            CallbackID_navigation_getVelocity                                               = 0xAF694808,
            CallbackID_navigation_setRandomTargetNode                                       = 0xA3FFB4A8,
            CallbackID_navigation_setNearestTargetNode                                      = 0x64960E87,
            CallbackID_navigation_setNearestNode                                            = 0x53E5A216,
            CallbackID_navigation_setPathMaxLength                                          = 0x643F7A15,
            CallbackID_navigation_getPathMaxLength                                          = 0x5629080C,
            CallbackID_navigation_getPathNodeCount                                          = 0xB740E8F4,
            CallbackID_navigation_getPathNodeAt                                             = 0x0451EEC5,
            CallbackID_navigation_enableNodesInBox                                          = 0xA0299941,
            CallbackID_navigation_enableNode                                                = 0x667B9821,
            CallbackID_navigation_getNodeTranslation                                        = 0x86AC0B9D,
            CallbackID_navigation_isNodeOnBorder                                            = 0x1019F515,
            CallbackID_navigation_isNodeEnabled                                             = 0x643A6224,

            CallbackID_network_authenticate                                                 = 0x25A464A7,
            CallbackID_network_disconnect                                                   = 0xECB0977B,
            CallbackID_network_getStatus                                                    = 0x7A67AF6C,
            CallbackID_network_getServerCount                                               = 0x261C68D4,
            CallbackID_network_getServerNameAt                                              = 0x3C95AF95,
            CallbackID_network_setCurrentServer                                             = 0x8E441880,
            CallbackID_network_getCurrentServer                                             = 0xBC526A99,
            CallbackID_network_createServer                                                 = 0xC8E22D2E,
            CallbackID_network_searchForServers                                             = 0x2F9BB08E,

            CallbackID_object_getHashCode                                                   = 0x7AB8B1B2,
            CallbackID_object_isEqualTo                                                     = 0xB1F1E88C,
            CallbackID_object_isKindOf                                                      = 0x685C51D5,
            CallbackID_object_hasController                                                 = 0xF2216611,
            CallbackID_object_getScene                                                      = 0x815B09FF,
            CallbackID_object_getParent                                                     = 0x76D296EE,
            CallbackID_object_setParent                                                     = 0x87FE8593,
            CallbackID_object_getModelName                                                  = 0x1E38CEC5,
            CallbackID_object_enableDistanceClipping                                        = 0xD37C6EF9,
            CallbackID_object_setDistanceClippingThresholds                                 = 0x7EA13C1F,
            CallbackID_object_setDistanceClippingFadeTime                                   = 0xF67FF304,
            CallbackID_object_setCanBeReflected                                             = 0xF187DC5B,
            CallbackID_object_setCanBeRefracted                                             = 0x3DDB1970,
            CallbackID_object_canBeReflected                                                = 0xD9B92458,
            CallbackID_object_canBeRefracted                                                = 0x15E5E173,
            CallbackID_object_sendEvent                                                     = 0x60981D3B,
            CallbackID_object_postEvent                                                     = 0xCD0AC2A3,
            CallbackID_object_setTransformOption                                            = 0xFCD11F40,
            CallbackID_object_getTransformOption                                            = 0xD9DA945E,
            CallbackID_object_getTranslation                                                = 0x2C08FB28,
            CallbackID_object_getRotation                                                   = 0xCABE092C,
            CallbackID_object_getScale                                                      = 0xB464C3A1,
            CallbackID_object_getDirection                                                  = 0xC6CBBD4B,
            CallbackID_object_getXAxis                                                      = 0x53DB4CEE,
            CallbackID_object_getYAxis                                                      = 0x6EBB655E,
            CallbackID_object_getZAxis                                                      = 0x291B1F8E,
            CallbackID_object_resetTranslation                                              = 0xBBBA3385,
            CallbackID_object_matchTranslation                                              = 0x9531DA22,
            CallbackID_object_setTranslation                                                = 0x5316485F,
            CallbackID_object_translate                                                     = 0xE9059367,
            CallbackID_object_translateTo                                                   = 0x01B920FD,
            CallbackID_object_resetRotation                                                 = 0xB0F3E88D,
            CallbackID_object_matchRotation                                                 = 0x4E5374BC,
            CallbackID_object_setRotation                                                   = 0xD491BE65,
            CallbackID_object_setRotationYPR                                                = 0x10A0885A,
            CallbackID_object_setRotationAxisAngle                                          = 0xD1374149,
            CallbackID_object_rotate                                                        = 0x94A8E02D,
            CallbackID_object_rotateYPR                                                     = 0x1514ACB0,
            CallbackID_object_rotateAxisAngle                                               = 0xC672EB4F,
            CallbackID_object_rotateTo                                                      = 0xC223DA59,
            CallbackID_object_rotateToYPR                                                   = 0x192FE8BB,
            CallbackID_object_rotateToAxisAngle                                             = 0x2FF663C1,
            CallbackID_object_rotateAround                                                  = 0x972995B2,
            CallbackID_object_lookAt                                                        = 0xEF7A34CA,
            CallbackID_object_lookAtWithUp                                                  = 0x43D50D5F,
            CallbackID_object_setUniformScale                                               = 0xCCD8878C,
            CallbackID_object_setScale                                                      = 0x4C95FC70,
            CallbackID_object_isActive                                                      = 0x238692BA,
            CallbackID_object_setVisible                                                    = 0xF56F0643,
            CallbackID_object_isVisible                                                     = 0xBF624B89,
            CallbackID_object_getDistanceToObject                                           = 0x11176C28,
            CallbackID_object_getBoundingSphereRadius                                       = 0x4E34C2DE,
            CallbackID_object_getBoundingSphereCenter                                       = 0x35B847A0,
            CallbackID_object_getBoundingBoxMin                                             = 0x2C542D6A,
            CallbackID_object_getBoundingBoxMax                                             = 0x10591233,
            CallbackID_object_addAIModel                                                    = 0x8FC8F3EC,
            CallbackID_object_removeAIModel                                                 = 0x42D9BBB7,
            CallbackID_object_getAIModelCount                                               = 0x15BA28D3,
            CallbackID_object_getAIModelNameAt                                              = 0xA2C29C76,
            CallbackID_object_hasAIModel                                                    = 0x4F34A55B,
            CallbackID_object_hasAIEventHandler                                             = 0xB28114A1,
            CallbackID_object_getAIVariable                                                 = 0x4C197394,
            CallbackID_object_setAIVariable                                                 = 0x38A7BFD8,
            CallbackID_object_getAIState                                                    = 0x9D1006E1,
            CallbackID_object_setSoundBank                                                  = 0x68796CA1,
            CallbackID_object_setAnimBank                                                   = 0x48484C56,
            CallbackID_object_transformVector                                               = 0x241838E9,
            CallbackID_object_transformPoint                                                = 0x74D39C82,
            CallbackID_object_getChildCount                                                 = 0x1F9243CD,
            CallbackID_object_getChildAt                                                    = 0x76093EA3,
                                
            CallbackID_pixelmap_getResourceHandle                                           = 0xD27289FB,
            CallbackID_pixelmap_getWidth                                                    = 0x16E7B355,
            CallbackID_pixelmap_getHeight                                                   = 0x450780DB,
            CallbackID_pixelmap_lock                                                        = 0x5527937E,
            CallbackID_pixelmap_unlock                                                      = 0x4B009383,
            CallbackID_pixelmap_setPixel                                                    = 0x1DBEED89,
            CallbackID_pixelmap_getPixel                                                    = 0xE54FD258,
            CallbackID_pixelmap_setPixels                                                   = 0x8F774A62,  // C/C++ addon for speed
            CallbackID_pixelmap_getPixels                                                   = 0x7E5B591F,  // C/C++ addon for speed
            CallbackID_pixelmap_createBrushFromTexture                                      = 0x09B99A08,
            CallbackID_pixelmap_createBrushFromRectangle                                    = 0xF7A2E6DD,
            CallbackID_pixelmap_destroyBrush                                                = 0x11149B5F,
            CallbackID_pixelmap_getBrushCount                                               = 0x91BD2060,
            CallbackID_pixelmap_getBrushOrigin                                              = 0x30EB5356,
            CallbackID_pixelmap_setBrushOrigin                                              = 0x4FF5E021,
            CallbackID_pixelmap_getBrushWidth                                               = 0x987E212D,
            CallbackID_pixelmap_getBrushHeight                                              = 0x1B57E047,
            CallbackID_pixelmap_setPenColor                                                 = 0x851441AE,
            CallbackID_pixelmap_setPenBrush                                                 = 0x12E5DB84,
            CallbackID_pixelmap_setPenMode                                                  = 0xB6C81223,
            CallbackID_pixelmap_setFillColor                                                = 0x5F5C52E3,
            CallbackID_pixelmap_setFillBrush                                                = 0xC8ADC8C9,
            CallbackID_pixelmap_setFillMode                                                 = 0x9E638F48,
            CallbackID_pixelmap_setBlendMode                                                = 0x89BB9FA7,
            CallbackID_pixelmap_drawPoint                                                   = 0xDA50609B,
            CallbackID_pixelmap_drawLine                                                    = 0xF963E0E3,
            CallbackID_pixelmap_drawRectangle                                               = 0xAC95AAE1,
            CallbackID_pixelmap_saveToTexture                                               = 0x64D2909B,

            CallbackID_projector_setColor                                                   = 0xB39D8A1A,
            CallbackID_projector_getColor                                                   = 0x4B6CB5CB,
            CallbackID_projector_setOpacity                                                 = 0x0906A94F,
            CallbackID_projector_getOpacity                                                 = 0x274388DD,
            CallbackID_projector_setFieldOfView                                             = 0xAD7774EC,
            CallbackID_projector_getFieldOfView                                             = 0xD269C79B,
            CallbackID_projector_setMinClipDistance                                         = 0x4CA45376,
            CallbackID_projector_getMinClipDistance                                         = 0x69AFD868,
            CallbackID_projector_setMaxClipDistance                                         = 0x6B1F3447,
            CallbackID_projector_getMaxClipDistance                                         = 0x4E14BF59,
            CallbackID_projector_setMap                                                     = 0xC187D194,
            CallbackID_projector_playMapMovie                                               = 0xA3252139,
            CallbackID_projector_pauseMapMovie                                              = 0xE4BCEA86,
            CallbackID_projector_stopMapMovie                                               = 0x72E450AF,

            CallbackID_scene_getName                                                        = 0x0B577580,
            CallbackID_scene_getUserCount                                                   = 0x1E2FFC1A,
            CallbackID_scene_getUserAt                                                      = 0x4BD36491,
            CallbackID_scene_sendEventToAllUsers                                            = 0x23D81920,
            CallbackID_scene_sendEventToAllObjects                                          = 0x6AF56808,
            CallbackID_scene_getTaggedObjectCount                                           = 0x48357ED1,
            CallbackID_scene_getTaggedObjectAt                                              = 0x0288EB8F,
            CallbackID_scene_getTaggedObjectTagAt                                           = 0x77940D03,
            CallbackID_scene_getTaggedObject                                                = 0xC8D8D8E3,
            CallbackID_scene_getObjectTag                                                   = 0x033BC9D6,
            CallbackID_scene_setRuntimeObjectTag                                            = 0x2E1E9923,
            CallbackID_scene_createRuntimeObject                                            = 0x61011526,
            CallbackID_scene_destroyRuntimeObject                                           = 0x80B90141,
            CallbackID_scene_combineRuntimeObjectsGroup                                     = 0x3ED75781,
            CallbackID_scene_setBackgroundColor                                             = 0xF116EA89,
            CallbackID_scene_getBackgroundColor                                             = 0xD41D6197,
            CallbackID_scene_setBackgroundOpacity                                           = 0x1ED85345,
            CallbackID_scene_getBackgroundOpacity                                           = 0xB0F31339,
            CallbackID_scene_setBackgroundTexture                                           = 0xDF433351,
            CallbackID_scene_setBackgroundTextureUVOffset                                   = 0x55EB4CDE,
            CallbackID_scene_setBackgroundTextureUVScale                                    = 0xBBDB134F,
            CallbackID_scene_setBackgroundTextureAddressingMode                             = 0x58F1EC25,
            CallbackID_scene_setBackgroundTextureFilteringMode                              = 0xBD6F7794,
            CallbackID_scene_setSkyBoxColor                                                 = 0xE75CCC34,
            CallbackID_scene_getSkyBoxColor                                                 = 0x98427F43,
            CallbackID_scene_setSkyBoxFaceMap                                               = 0xEE2A38DA,
            CallbackID_scene_setAmbientColor                                                = 0xFD39B522,
            CallbackID_scene_getAmbientColor                                                = 0x33274F0E,
            CallbackID_scene_setShadowAmbientColor                                          = 0xDFB5A07D,
            CallbackID_scene_getShadowAmbientColor                                          = 0x86A8B62A,
            CallbackID_scene_setFogDensity                                                  = 0xB153A686,
            CallbackID_scene_getFogDensity                                                  = 0xC5ED6ACA,
            CallbackID_scene_setFogColor                                                    = 0xF0064D8D,
            CallbackID_scene_getFogColor                                                    = 0xEE29FAC4,
            CallbackID_scene_createOcean                                                    = 0xF1EE5F62,
            CallbackID_scene_destroyOcean                                                   = 0xF500181C,
            CallbackID_scene_setOceanWavesAmplitude                                         = 0x21839B29,
            CallbackID_scene_getOceanWavesAmplitude                                         = 0xD4D54268,
            CallbackID_scene_setOceanWavesMeanHeight                                        = 0x7DC463C7,
            CallbackID_scene_getOceanWavesMeanHeight                                        = 0x7CEA4418,
            CallbackID_scene_setOceanWavesFrequency                                         = 0x6C51BB2B,
            CallbackID_scene_getOceanWavesFrequency                                         = 0x9907626A,
            CallbackID_scene_setOceanUnderwaterFogDensity                                   = 0x796515C3,
            CallbackID_scene_getOceanUnderwaterFogDensity                                   = 0x64ED3067,
            CallbackID_scene_setOceanUnderwaterFogColor                                     = 0x1C5B67C6,
            CallbackID_scene_getOceanUnderwaterFogColor                                     = 0x9C9DAA60,
            CallbackID_scene_setOceanSurfaceColor                                           = 0xB049BE8D,
            CallbackID_scene_getOceanSurfaceColor                                           = 0x1E62FEF1,
            CallbackID_scene_setOceanSurfaceColorFactor                                     = 0xC40FB1E2,
            CallbackID_scene_getOceanSurfaceColorFactor                                     = 0x44C97C44,
            CallbackID_scene_setOceanSurfaceColorMaxDistance                                = 0x0B4E6CD0,
            CallbackID_scene_getOceanSurfaceColorMaxDistance                                = 0xDEAF4284,
            CallbackID_scene_getOceanHeight                                                 = 0x71E4E819,
            CallbackID_scene_getOceanNormal                                                 = 0xA52C65F2,
            CallbackID_scene_setOceanFoamMap                                                = 0x8F59B934,
            CallbackID_scene_setOceanFoamMapTiling                                          = 0x72F1C7F3,
            CallbackID_scene_getOceanFoamMapTiling                                          = 0x2BECD1A4,
            CallbackID_scene_setOceanNormalMapTiling                                        = 0x44776442,
            CallbackID_scene_getOceanNormalMapTiling                                        = 0x4559439D,
            CallbackID_scene_setOceanReflectionNoiseScale                                   = 0x26ADA631,
            CallbackID_scene_getOceanReflectionNoiseScale                                   = 0x3B258395,
            CallbackID_scene_setOceanRefractionNoiseScale                                   = 0xA4E98B5D,
            CallbackID_scene_getOceanRefractionNoiseScale                                   = 0xB961AEF9,
            CallbackID_scene_setOceanFresnelPower                                           = 0x7ECF935A,
            CallbackID_scene_getOceanFresnelPower                                           = 0xD0E4D326,
            CallbackID_scene_setOceanFresnelBias                                            = 0x67547479,
            CallbackID_scene_getOceanFresnelBias                                            = 0x9D7E4291,
            CallbackID_scene_setOceanReflectorBias                                          = 0x01E0DFF4,
            CallbackID_scene_getOceanReflectorBias                                          = 0x58FDC9A3,
            CallbackID_scene_setColorLevels                                                 = 0x6DECFAE2,
            CallbackID_scene_getColorLevels                                                 = 0x12F24995,
            CallbackID_scene_setColorSaturation                                             = 0x42D34A2C,
            CallbackID_scene_getColorSaturation                                             = 0x67D8C132,
            CallbackID_scene_setColorContrast                                               = 0x43B24EFB,
            CallbackID_scene_getColorContrast                                               = 0x71A43CE2,
            CallbackID_scene_setMonochromeFilter                                            = 0xAA2272B5,
            CallbackID_scene_getMonochromeFilter                                            = 0x5008445D,
            CallbackID_scene_setBloomIntensity                                              = 0x4C18616D,
            CallbackID_scene_getBloomIntensity                                              = 0x2841DFDF,
            CallbackID_scene_setBloomThreshold                                              = 0x4ED0F369,
            CallbackID_scene_getBloomThreshold                                              = 0x2A894DDB,
            CallbackID_scene_setBloomColoring                                               = 0x2C18D5CD,
            CallbackID_scene_getBloomColoring                                               = 0x1E0EA7D4,
            CallbackID_scene_setBloomMotionBlurFactor                                       = 0xEBEB7AC3,
            CallbackID_scene_getBloomMotionBlurFactor                                       = 0xFD869BA1,
            CallbackID_scene_getObjectCount                                                 = 0xF5A8B1FA,
            CallbackID_scene_getObjectAt                                                    = 0xD829A83C,
            CallbackID_scene_getFirstHitCollider                                            = 0x48B7F12D,
            CallbackID_scene_getFirstHitColliderEx                                          = 0x78998063,
            CallbackID_scene_getFirstHitColliderWithID                                      = 0xF6B29518,
            CallbackID_scene_getFirstHitColliderWithIDEx                                    = 0x90775991,
            CallbackID_scene_getFirstHitSensor                                              = 0xF44980E6,
            CallbackID_scene_getFirstHitSensorWithID                                        = 0xE3D2D4F0,
            CallbackID_scene_getFirstHitSensorWithIDInRange                                 = 0x304BA5A1,
            CallbackID_scene_getFirstHitTerrainChunk                                        = 0x1AD1A4A4,
            CallbackID_scene_getTerrainHeight                                               = 0x816DA5A5,
            CallbackID_scene_getTerrainNormal                                               = 0x55A5284E,
            CallbackID_scene_getTerrainStatus                                               = 0x0F2025B6,
            CallbackID_scene_setTerrainTextureFilteringMode                                 = 0x03EA0D79,
            CallbackID_scene_setTerrainLODSwitchThreshold                                   = 0x7C5996A5,
            CallbackID_scene_setTerrainVegetationLayerMaxVisibleInstances                   = 0x61B52666,
            CallbackID_scene_setTerrainVegetationLayerVisible                               = 0xB3892DB6,
            CallbackID_scene_setTerrainVegetationLayerTextureFilteringMode                  = 0x63814E56,
            CallbackID_scene_getTerrainVegetationLayerCount                                 = 0x54777D68,
            CallbackID_scene_setDynamicsTimeStep                                            = 0xF2FFDF06,
            CallbackID_scene_getDynamicsTimeStep                                            = 0x08D5E9EE,
            CallbackID_scene_setDynamicsIterationsPerStep                                   = 0x91E37159,
            CallbackID_scene_getDynamicsIterationsPerStep                                   = 0x8C6B54FD,
            CallbackID_scene_setDynamicsGravity                                             = 0x17336577,
            CallbackID_scene_getDynamicsGravity                                             = 0x3238EE69,
            CallbackID_scene_setPaused                                                      = 0x4D96EED7,
            CallbackID_scene_setPerPixelLightingMinScreenSize                               = 0x75FF5451,
            CallbackID_scene_getPerPixelLightingMinScreenSize                               = 0x192C2092,
            CallbackID_scene_setNormalMappingMinScreenSize                                  = 0xA2F2DDCC,
            CallbackID_scene_getNormalMappingMinScreenSize                                  = 0x73543218,
            CallbackID_scene_setNormalMappingFadeScreenSize                                 = 0x9895EC1C,
            CallbackID_scene_getNormalMappingFadeScreenSize                                 = 0x19FA5C3E,
            CallbackID_scene_setSpecularLightingMinScreenSize                               = 0x6C6E8474,
            CallbackID_scene_getSpecularLightingMinScreenSize                               = 0x00BDF0B7,
            CallbackID_scene_setSpecularLightingFadeScreenSize                              = 0x5DE14BFB,
            CallbackID_scene_getSpecularLightingFadeScreenSize                              = 0x5FE00B85,
            CallbackID_scene_setDynamicShadowsFadeDistance                                  = 0x022EC868,
            CallbackID_scene_getDynamicShadowsFadeDistance                                  = 0xD38827BC,
            CallbackID_scene_setDynamicShadowsMaxDistance                                   = 0x9E69D830,
            CallbackID_scene_getDynamicShadowsMaxDistance                                   = 0x83E1FD94,

            CallbackID_sensor_getCount                                                      = 0x9D39FE26,
            CallbackID_sensor_setActiveAt                                                   = 0xAE727832,
            CallbackID_sensor_isActiveAt                                                    = 0xE1C349B9,
            CallbackID_sensor_setAllActive                                                  = 0x0580432E,
            CallbackID_sensor_removeAll                                                     = 0xAC0A5E7B,
            CallbackID_sensor_removeAt                                                      = 0xAAA1D337,
            CallbackID_sensor_add                                                           = 0x4E6CBD02,
            CallbackID_sensor_getIDAt                                                       = 0xF90EBA3F,
            CallbackID_sensor_setIDAt                                                       = 0x6A9F02E2,
            CallbackID_sensor_getShapeTypeAt                                                = 0x02B1E7F9,
            CallbackID_sensor_setSphereCenterAt                                             = 0xFF57DC2F,
            CallbackID_sensor_setSphereRadiusAt                                             = 0xD3398474,
            CallbackID_sensor_getSphereCenterAt                                             = 0x9B0E629D,
            CallbackID_sensor_getSphereRadiusAt                                             = 0xB7603AC6,
            CallbackID_sensor_setBoxCenterAt                                                = 0xD8F5066A,
            CallbackID_sensor_setBoxSizeAt                                                  = 0x36CF7575,
            CallbackID_sensor_getBoxCenterAt                                                = 0xA7EBB51D,
            CallbackID_sensor_getBoxSizeAt                                                  = 0x39D1A3F6,

            CallbackID_server_getStatus                                                     = 0xB1F6F61C,
            CallbackID_server_getName                                                       = 0x66B9D127,
            CallbackID_server_getCurrentPingDelay                                           = 0x31372229,
            CallbackID_server_getAveragePingDelay                                           = 0x14B214B3,
            CallbackID_server_getSessionCount                                               = 0x76DF1C7A,
            CallbackID_server_getSessionNameAt                                              = 0x0DABE20E,
            CallbackID_server_getSessionUserCountAt                                         = 0xFF7A8360,
            CallbackID_server_setCurrentSession                                             = 0x3B1409C8,
            CallbackID_server_getCurrentSession                                             = 0x5F4DB77A,
            CallbackID_server_sendEvent                                                     = 0xE132789A,

            CallbackID_session_getStatus                                                    = 0xBE208A8F,
            CallbackID_session_getName                                                      = 0x35BD7087,

            CallbackID_sfx_getParticleEmitterCount                                          = 0xA72053DF,
            CallbackID_sfx_startParticleEmitterAt                                           = 0x4853F133,
            CallbackID_sfx_startAllParticleEmitters                                         = 0x282A6EA8,
            CallbackID_sfx_stopParticleEmitterAt                                            = 0x168211E4,
            CallbackID_sfx_stopAllParticleEmitters                                          = 0x465981D9,
            CallbackID_sfx_pauseParticleEmitterAt                                           = 0x0FD4E367,
            CallbackID_sfx_pauseAllParticleEmitters                                         = 0x0544C037,
            CallbackID_sfx_setParticleEmitterTranslationAt                                  = 0xA8F7D457,
            CallbackID_sfx_setParticleEmitterRotationAt                                     = 0x2916B330,
            CallbackID_sfx_setParticleEmitterUniformScaleAt                                 = 0x52429319,
            CallbackID_sfx_setParticleEmitterGenerationRateAt                               = 0x1FA051EE,
            CallbackID_sfx_setParticleEmitterLifeTimeFactorAt                               = 0xAAB1ABEF,
            CallbackID_sfx_setParticleEmitterInitialSpeedFactorAt                           = 0x219E450E,
            CallbackID_sfx_getParticleEmitterUniformScaleAt                                 = 0x3E91E7DA,
            CallbackID_sfx_getParticleEmitterGenerationRateAt                               = 0xA81F0C95,
            CallbackID_sfx_getParticleEmitterLifeTimeFactorAt                               = 0x1D0EF694,
            CallbackID_sfx_getParticleEmitterInitialSpeedFactorAt                           = 0xCF9C4B28,
            CallbackID_sfx_getParticleEmitterAliveParticleCountAt                           = 0x9F31848D,
            CallbackID_sfx_getTrailCount                                                    = 0x5E939406,
            CallbackID_sfx_setTrailAnchor0At                                                = 0x30BF09F0,
            CallbackID_sfx_setTrailAnchor1At                                                = 0x317D63C7,
            CallbackID_sfx_startTrailAt                                                     = 0x34394A32,
            CallbackID_sfx_pauseTrailAt                                                     = 0x1529F42F,
            CallbackID_sfx_stopTrailAt                                                      = 0x5EF024F9,
            CallbackID_sfx_startAllTrails                                                   = 0x07AD397E,
            CallbackID_sfx_pauseAllTrails                                                   = 0xD418EAF9,
            CallbackID_sfx_stopAllTrails                                                    = 0x85A9116D,

            CallbackID_shape_setMeshOpacity                                                 = 0xE5B1625F,
            CallbackID_shape_getMeshOpacity                                                 = 0x9AAFD128,
            CallbackID_shape_getMeshSubsetCount                                             = 0x476739A1,
            CallbackID_shape_setMeshSubsetMaterial                                          = 0x0002D229,
            CallbackID_shape_getMeshSubsetMaterialName                                      = 0x3CBADFC5,
            CallbackID_shape_setMeshMaterial                                                = 0x231DB192,
            CallbackID_shape_compareMeshSubsetMaterial                                      = 0x067CE1E5,
            CallbackID_shape_enableMeshFrustumCulling                                       = 0x9F2D2734,
            CallbackID_shape_overrideMeshSubsetMaterialEmissive                             = 0xCCB01696,
            CallbackID_shape_overrideMeshSubsetMaterialAmbient                              = 0xB6D4F927,
            CallbackID_shape_overrideMeshSubsetMaterialDiffuse                              = 0x5B64CD9E,
            CallbackID_shape_overrideMeshSubsetMaterialSpecular                             = 0xC2BF18AB,
            CallbackID_shape_overrideMeshSubsetMaterialOpacity                              = 0xB6387689,
            CallbackID_shape_overrideMeshSubsetMaterialOpacityThreshold                     = 0x9E5D9D6B,
            CallbackID_shape_overrideMeshSubsetMaterialEffectIntensity                      = 0x8994761C,
            CallbackID_shape_getMeshSubsetMaterialEmissiveOverride                          = 0xE77D5836,
            CallbackID_shape_getMeshSubsetMaterialAmbientOverride                           = 0x1BF90495,
            CallbackID_shape_getMeshSubsetMaterialDiffuseOverride                           = 0x44E25843,
            CallbackID_shape_getMeshSubsetMaterialSpecularOverride                          = 0xE7EC6973,
            CallbackID_shape_getMeshSubsetMaterialOpacityOverride                           = 0xBBE6B0C9,
            CallbackID_shape_getMeshSubsetMaterialOpacityThresholdOverride                  = 0x0A5B163C,
            CallbackID_shape_getMeshSubsetMaterialEffectIntensityOverride                   = 0xCF7AA55B,
            CallbackID_shape_overrideMeshMaterialEmissive                                   = 0x90D514FA,
            CallbackID_shape_overrideMeshMaterialAmbient                                    = 0x60BC919C,
            CallbackID_shape_overrideMeshMaterialDiffuse                                    = 0x8D0CA525,
            CallbackID_shape_overrideMeshMaterialSpecular                                   = 0x9EDA1AC7,
            CallbackID_shape_overrideMeshSubsetMaterialEffectMap0                           = 0x7F0EAC89,
            CallbackID_shape_overrideMeshMaterialEffectMap0                                 = 0x5848B56B,
            CallbackID_shape_overrideMeshSubsetMaterialEffectMap1                           = 0x08099C1F,
            CallbackID_shape_overrideMeshMaterialEffectMap1                                 = 0x2F4F85FD,
            CallbackID_shape_overrideMeshSubsetMaterialNormalMap                            = 0x667ED10C,
            CallbackID_shape_overrideMeshMaterialNormalMap                                  = 0x2226997D,
            CallbackID_shape_overrideMeshSubsetMaterialSpecularMap                          = 0xA708685C,
            CallbackID_shape_overrideMeshMaterialSpecularMap                                = 0xE92BAD11,
            CallbackID_shape_getMeshSubsetMaterialEffectMap0                                = 0xCEA8AD18,
            CallbackID_shape_getMeshSubsetMaterialEffectMap1                                = 0xB9AF9D8E,
            CallbackID_shape_getMeshSubsetMaterialNormalMap                                 = 0xCB966437,
            CallbackID_shape_getMeshSubsetMaterialSpecularMap                               = 0x20B16D8F,
            CallbackID_shape_getMeshSubsetMaterialEffectMap0Override                        = 0x513D39BA,
            CallbackID_shape_getMeshSubsetMaterialEffectMap1Override                        = 0x46462DF9,
            CallbackID_shape_getMeshSubsetMaterialNormalMapOverride                         = 0xDE7E7AB5,
            CallbackID_shape_getMeshSubsetMaterialSpecularMapOverride                       = 0x0B583134,
            CallbackID_shape_setMeshSubsetMaterialEffectMap0AdditionalUVOffset              = 0xD9F04229,
            CallbackID_shape_setMeshSubsetMaterialEffectMap0AdditionalUVScale               = 0x73A91711,
            CallbackID_shape_setMeshSubsetMaterialEffectMap0AdditionalUVRotation            = 0x0F6149ED,
            CallbackID_shape_setMeshSubsetMaterialEffectMap1AdditionalUVOffset              = 0x0E12C271,
            CallbackID_shape_setMeshSubsetMaterialEffectMap1AdditionalUVScale               = 0x9CFBA1F0,
            CallbackID_shape_setMeshSubsetMaterialEffectMap1AdditionalUVRotation            = 0x90BBCA73,
            CallbackID_shape_getMeshSubsetMaterialEffectMap0AdditionalUVOffset              = 0x11BC28DB,
            CallbackID_shape_getMeshSubsetMaterialEffectMap0AdditionalUVScale               = 0xE8926523,
            CallbackID_shape_getMeshSubsetMaterialEffectMap0AdditionalUVRotation            = 0x848C8AD8,
            CallbackID_shape_getMeshSubsetMaterialEffectMap1AdditionalUVOffset              = 0xC65EA883,
            CallbackID_shape_getMeshSubsetMaterialEffectMap1AdditionalUVScale               = 0x07C0D3C2,
            CallbackID_shape_getMeshSubsetMaterialEffectMap1AdditionalUVRotation            = 0x1B560946,
            CallbackID_shape_playMeshSubsetMaterialEffectMap0Movie                          = 0x7279E7DB,
            CallbackID_shape_pauseMeshSubsetMaterialEffectMap0Movie                         = 0x5B8A3FAF,
            CallbackID_shape_stopMeshSubsetMaterialEffectMap0Movie                          = 0x648A0E78,
            CallbackID_shape_getMeshSubsetMaterialEffectMap0MovieBufferingProgress          = 0x71F1F5B7,
            CallbackID_shape_getMeshSubsetMaterialEffectMap0MoviePlaybackProgress           = 0xCE2A15FA,
            CallbackID_shape_getMeshSubsetMaterialEffectMap0MoviePlaybackCursor             = 0x62D3E029,
            CallbackID_shape_setMeshSubsetMaterialEffectMap0MovieTransparentColor           = 0xDCC4C093,
            CallbackID_shape_getMesh                                                        = 0x4C375707,
            CallbackID_shape_getMeshName                                                    = 0xE5587C3B,
            CallbackID_shape_getMeshTriangleCount                                           = 0x73571800,
            CallbackID_shape_getMeshVertexCount                                             = 0xC0599F18,
            CallbackID_shape_getSkeletonName                                                = 0x4D331633,
            CallbackID_shape_getSkeletonJointCount                                          = 0x13BD0D1A,
            CallbackID_shape_getSkeletonJointNameAt                                         = 0x407CE147,
            CallbackID_shape_createRuntimeMesh                                              = 0x1E3D5E0F,
            CallbackID_shape_overrideSkeletonJointTranslation                               = 0xC0F899D0,
            CallbackID_shape_overrideSkeletonJointRotation                                  = 0xE2B33E2F,
            CallbackID_shape_setSkeletonJointCustomScale                                    = 0xB1A963F4,
            CallbackID_shape_getSkeletonJointTranslation                                    = 0x4B2154ED,
            CallbackID_shape_getSkeletonJointRotation                                       = 0x18FAF082,
            CallbackID_shape_getSkeletonJointXAxis                                          = 0x9D9DE3B3,
            CallbackID_shape_getSkeletonJointYAxis                                          = 0xA0FDCA03,
            CallbackID_shape_getSkeletonJointZAxis                                          = 0xE75DB0D3,
            CallbackID_shape_getSkeletonJointParentJointName                                = 0xA5B274D1,
            CallbackID_shape_addSkeletonCloneModifier                                       = 0xBB850722,
            CallbackID_shape_addCurve                                                       = 0x28966410,
            CallbackID_shape_removeCurve                                                    = 0x241D5560,
            CallbackID_shape_getCurveCount                                                  = 0xA1C9A121,
            CallbackID_shape_addCurvePoint                                                  = 0x0603411E,
            CallbackID_shape_removeCurvePoint                                               = 0xF6938578,
            CallbackID_shape_getCurvePointCount                                             = 0x83812D5A,
            CallbackID_shape_getCurvePoint                                                  = 0x93B51667,
            CallbackID_shape_setCurvePoint                                                  = 0xE70BDA2B,
            CallbackID_shape_setCurveStartColor                                             = 0xF33C206F,
            CallbackID_shape_setCurveEndColor                                               = 0xAA04CDDB,
            CallbackID_shape_setCurveStartOpacity                                           = 0x6D4D2EAB,
            CallbackID_shape_setCurveEndOpacity                                             = 0x335F82EA,
            CallbackID_shape_getCurveStartColor                                             = 0xD637AB71,
            CallbackID_shape_getCurveEndColor                                               = 0x9812BFC2,
            CallbackID_shape_evaluateCurve                                                  = 0x6C0F2586,
            CallbackID_shape_getCurveLength                                                 = 0xEE8C9E7D,

            CallbackID_sound_play                                                           = 0x41F4483E,
            CallbackID_sound_pause                                                          = 0x3D50A842,
            CallbackID_sound_resume                                                         = 0x2642A4E3,
            CallbackID_sound_stop                                                           = 0xA62B8032,
            CallbackID_sound_setVolume                                                      = 0xEDC185A5,
            CallbackID_sound_setPitch                                                       = 0xA280EC2F,
            CallbackID_sound_isPlaying                                                      = 0xF8003D95,
            CallbackID_sound_isPaused                                                       = 0x0BE5AB21,
            CallbackID_sound_getPlaybackProgress                                            = 0x593A93C8,
            CallbackID_sound_setPlaybackProgress                                            = 0xA310A520,
            CallbackID_sound_getName                                                        = 0xB7D0E889,
            CallbackID_sound_enableSpatialization                                           = 0xDCCC98BC,
            CallbackID_sound_isSpatializationEnabled                                        = 0x1E9A30A3,
            CallbackID_sound_setSpatializationRolloffFactor                                 = 0xBC829161,
            CallbackID_sound_getSpatializationRolloffFactor                                 = 0x3DED2143,
            CallbackID_sound_setSpatializationReferenceDistance                             = 0xDE5CB6DE,
            CallbackID_sound_getSpatializationReferenceDistance                             = 0x69E3EBA5,

            CallbackID_string_isEmpty                                                       = 0x15025591,
            CallbackID_string_getLength                                                     = 0x0B56F67D,      
            CallbackID_string_getByte                                                       = 0xEF7286D4,
            CallbackID_string_format                                                        = 0xBD71835C,
            CallbackID_string_replace                                                       = 0x784F3D2E,
            CallbackID_string_contains                                                      = 0x54EE00B7,
            CallbackID_string_findFirst                                                     = 0x39C875D4,
            CallbackID_string_findFirstMatching                                             = 0x48EB519B,
            CallbackID_string_explode                                                       = 0x20A135E6,
            CallbackID_string_lower                                                         = 0xC307213E,
            CallbackID_string_upper                                                         = 0xA3C28581,
            CallbackID_string_toNumber                                                      = 0xCA2CAD07,
            CallbackID_string_getSubString                                                  = 0x6405F622,
            CallbackID_string_crc32                                                         = 0x62368943,
            CallbackID_string_md5                                                           = 0x6B475F85,
            CallbackID_string_sha1                                                          = 0x796E9EDF,
            CallbackID_string_hmacsha1                                                      = 0x59153DDF,
            CallbackID_string_reverse                                                       = 0xDEA5887C,
            CallbackID_string_compare                                                       = 0xC91B1136,
            CallbackID_string_encodeHTML                                                    = 0x193F2749,
            CallbackID_string_decodeHTML                                                    = 0x74A8D2AA,
            CallbackID_string_encodeURL                                                     = 0x69D8EFCF,
            CallbackID_string_decodeURL                                                     = 0x23C9E7DA,
            CallbackID_string_encodeBase64                                                  = 0x82F2C94A,

            CallbackID_system_getOSType                                                     = 0x31474FA7,
            CallbackID_system_getOSVersion                                                  = 0x5F7F564D,
            CallbackID_system_getOSVersionString                                            = 0xC93B4D01,
            CallbackID_system_getOSLanguage                                                 = 0xDE3BBC17,
            CallbackID_system_getGPUModelDescription                                        = 0x29906A6E,
            CallbackID_system_getGPUDriverDescription                                       = 0xBCBA5820,
            CallbackID_system_getGPUCapability                                              = 0xF7AB0529,
            CallbackID_system_getDeviceUniqueIdentifier                                     = 0x89206849,
            CallbackID_system_getDeviceModel                                                = 0x64EAA2A1,
            CallbackID_system_getDeviceName                                                 = 0x478928FE,
            CallbackID_system_getSupportedScreenResolutionCount                             = 0x62987E4A,
            CallbackID_system_getSupportedScreenResolutionAt                                = 0x4B5C2BD4,
            CallbackID_system_getCurrentScreenResolution                                    = 0x9D1206D0,
            CallbackID_system_getClientType                                                 = 0x582E48EC,
            CallbackID_system_setWakeLock                                                   = 0xBB97F1BB,
            CallbackID_system_getClipboardText                                              = 0x0E543729,
            CallbackID_system_setClipboardText                                              = 0x3C424530,
            CallbackID_system_getYear                                                       = 0x1D15BB39,
            CallbackID_system_getMonth                                                      = 0x69A8AAC9,
            CallbackID_system_getDayOfMonth                                                 = 0x3837C84D,
            CallbackID_system_getDayOfWeek                                                  = 0xBCAF1FFF,
            CallbackID_system_getTimeOfDay                                                  = 0xDC30929C,
            CallbackID_system_getUnixTimestampString                                        = 0xBDD5ED08,
            CallbackID_system_areLocationUpdatesSupported                                   = 0xFDEC482D,
            CallbackID_system_areLocationUpdatesEnabled                                     = 0xBAA6B5B6,
            CallbackID_system_enableLocationUpdates                                         = 0x6C8BC648,
            CallbackID_system_getLastKnownLocation                                          = 0xBE0861A3,
            CallbackID_system_areHeadingUpdatesSupported                                    = 0xD60EEE71,
            CallbackID_system_areHeadingUpdatesEnabled                                      = 0xF5AC2C83,
            CallbackID_system_enableHeadingUpdates                                          = 0xBB292142,
            CallbackID_system_getLastKnownHeading                                           = 0x41B549CB,
            CallbackID_system_getLastKnownTrueHeading                                       = 0x6C95E1B3,
            CallbackID_system_hasPersistentStorageManager                                   = 0x58154B38,
            CallbackID_system_openPersistentStorageManager                                  = 0x4E660D49,
            CallbackID_system_openURL                                                       = 0x5CFC8557,
            CallbackID_system_getHomeDirectory                                              = 0x0BE74745,
            CallbackID_system_getDocumentsDirectory                                         = 0x0E20244F,
            CallbackID_system_getPicturesDirectory                                          = 0x60129586,
            CallbackID_system_findFiles                                                     = 0xAC9B728E,
            CallbackID_system_findDirectories                                               = 0x2B9E917E,
            CallbackID_system_install                                                       = 0x8F3D70A6,
            CallbackID_system_isInstalled                                                   = 0x0B52C391,
            CallbackID_system_getInstallationStatus                                         = 0x94BB1235,
            CallbackID_system_launch                                                        = 0x8498F015,

            CallbackID_table_isEmpty                                                        = 0x8E421FD4,
            CallbackID_table_getSize                                                        = 0x1E327295,
            CallbackID_table_getAt                                                          = 0xFDF16C72,
            CallbackID_table_getLast                                                        = 0xA329FF5F,
            CallbackID_table_getFirst                                                       = 0xBF9AF38C,
            CallbackID_table_setAt                                                          = 0x68915D30,
            CallbackID_table_empty                                                          = 0x990C012A,
            CallbackID_table_add                                                            = 0xF935CC34,
            CallbackID_table_removeAt                                                       = 0x9FAA74A8,
            CallbackID_table_removeLast                                                     = 0xCB9228C7,
            CallbackID_table_removeFirst                                                    = 0x4126532D,
            CallbackID_table_insertAt                                                       = 0x5D962875,
            CallbackID_table_contains                                                       = 0x52C3F5E2,
            CallbackID_table_shuffle                                                        = 0xDC6C0A5F,
            CallbackID_table_reverse                                                        = 0x45E5C239,
            CallbackID_table_swap                                                           = 0x3A4D29B0,
            CallbackID_table_reserve                                                        = 0xF072B90C,
            CallbackID_table_getRangeAt                                                     = 0x541C5B59,
            CallbackID_table_setRangeAt                                                     = 0x7A597ACB,

            CallbackID_user_getSceneName                                                    = 0x6735ADC0,
            CallbackID_user_isLocal                                                         = 0xC35DE65C,
            CallbackID_user_getID                                                           = 0x55F0FD7A,
            CallbackID_user_sendEvent                                                       = 0x8FE9D183,
            CallbackID_user_postEvent                                                       = 0x227B0E1B,
            CallbackID_user_setLocalSoundSourceObject                                       = 0xB09E0EF7,
            CallbackID_user_getLocalSoundSourceObject                                       = 0x13346362,
            CallbackID_user_setLocalSoundSourceRolloffFactor                                = 0x6745BF79,
            CallbackID_user_getLocalSoundSourceRolloffFactor                                = 0x0B96CBBA,
            CallbackID_user_setLocalSoundSourceReferenceDistance                            = 0xEC98E891,
            CallbackID_user_getLocalSoundSourceReferenceDistance                            = 0x3589D25A,
            CallbackID_user_getAIModelCount                                                 = 0xBEFBEC75,
            CallbackID_user_getAIModelNameAt                                                = 0x9DDCDB6F,
            CallbackID_user_hasAIModel                                                      = 0x8A61EF29,
            CallbackID_user_hasAIEventHandler                                               = 0xD6D5A226,

            CallbackID_video_getCaptureDeviceCount                                          = 0x8B1DE6FD,
            CallbackID_video_getCaptureDeviceNameAt                                         = 0x7E8A3677,
            CallbackID_video_setActiveCaptureDevice                                         = 0xD178EFB3,
            CallbackID_video_startCaptureToPixelMap                                         = 0x016B6034,
            CallbackID_video_stopCapture                                                    = 0x49492297,
            CallbackID_video_getCaptureWidth                                                = 0x97FEA7B8,
            CallbackID_video_getCaptureHeight                                               = 0x9B3D070A,
            CallbackID_video_getCaptureHorizontalFlip                                       = 0x6EBEE283,
            CallbackID_video_setCaptureWidth                                                = 0x59E05D94,
            CallbackID_video_setCaptureHeight                                               = 0xA92B7513,
            CallbackID_video_setCaptureRate                                                 = 0x45B5601B,
            CallbackID_video_setCaptureHorizontalFlip                                       = 0x78D303E1,

            CallbackID_xml_getRootElement                                                   = 0xCC3FFF50,
            CallbackID_xml_getElementName                                                   = 0x7DF9C81D,
            CallbackID_xml_setElementName                                                   = 0x02E77B6A,
            CallbackID_xml_getElementValue                                                  = 0x97314B6E,
            CallbackID_xml_setElementValue                                                  = 0x592FB142,
            CallbackID_xml_getElementChildCount                                             = 0x29781627,
            CallbackID_xml_getElementChildAt                                                = 0x13798F6D,
            CallbackID_xml_getElementAttributeCount                                         = 0xCF6D3528,
            CallbackID_xml_getElementAttributeAt                                            = 0xE0A6BB0F,
            CallbackID_xml_getElementAttributeWithName                                      = 0xBC1804D7,
            CallbackID_xml_getElementParent                                                 = 0xB6BA9EB6,
            CallbackID_xml_getElementFirstChild                                             = 0xCCD11AAA,
            CallbackID_xml_getElementNextSibling                                            = 0x2568E166,
            CallbackID_xml_getElementFirstChildWithName                                     = 0xCFEFA36B,
            CallbackID_xml_getElementNextSiblingWithName                                    = 0x9C9E7823,
            CallbackID_xml_appendElementChild                                               = 0xE532D37F,
            CallbackID_xml_insertElementChildAt                                             = 0xBDAB8EAE,
            CallbackID_xml_appendElementChildElement                                        = 0x3A37F30A,
            CallbackID_xml_insertElementChildElementAt                                      = 0xBE224D91,
            CallbackID_xml_removeElementChildAt                                             = 0xE9E2BC37,
            CallbackID_xml_removeElementChild                                               = 0xC2F7DDFA,
            CallbackID_xml_appendElementAttribute                                           = 0xD7FE4C99,
            CallbackID_xml_removeElementAttributeAt                                         = 0xADE647D3,
            CallbackID_xml_removeElementAttribute                                           = 0x1460B1FA,
            CallbackID_xml_getAttributeName                                                 = 0x47F23EB7,
            CallbackID_xml_setAttributeName                                                 = 0x75E44CAE,
            CallbackID_xml_getAttributeValue                                                = 0xA1080A6E,
            CallbackID_xml_setAttributeValue                                                = 0xC551B4DC,
            CallbackID_xml_empty                                                            = 0xF47DA3D4,
            CallbackID_xml_toString                                                         = 0xC04634D9,
            CallbackID_xml_createFromString                                                 = 0xDD46F9E5,
            CallbackID_xml_send                                                             = 0x14EB8309,
            CallbackID_xml_receive                                                          = 0x32060199,
            CallbackID_xml_getSendStatus                                                    = 0xDD3484F3,
            CallbackID_xml_getReceiveStatus                                                 = 0xD748C5B1
        } ;

        //---------------------------------------------------------------------
        //  Callback structures
        //
        struct AnimationCallbacks
        {
            S3DX_AVAILABLE( AICallback  setCurrentClip                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurrentClip                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setPlaybackSpeed                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getPlaybackSpeed                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setPlaybackLevel                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getPlaybackLevel                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setPlaybackKeyFrameBegin                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getPlaybackKeyFrameBegin                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setPlaybackKeyFrameEnd                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getPlaybackKeyFrameEnd                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setPlaybackMode                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getPlaybackMode                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setPlaybackCursor                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getPlaybackCursor                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  matchPlaybackCursor                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setSkeletonScale                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSkeletonScale                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setObjectChannel                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getClipKeyFrameRangeMin                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getClipKeyFrameRangeMax                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getClipName                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setPlaybackIgnoreNotAnimatedChannels                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getPlaybackIgnoreNotAnimatedChannels                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setPlaybackIgnoreIfCursorOutOfRange                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getPlaybackIgnoreIfCursorOutOfRange                     ; , 0x01090000 )
        } ;

        struct ApplicationCallbacks
        {
            S3DX_AVAILABLE( AICallback  getName                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getPackDirectory                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getUserCount                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getUserAt                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getUser                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurrentUser                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurrentUserScene                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurrentUserSceneName                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCurrentUserScene                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurrentUserSceneTaggedObject                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurrentUserAIVariable                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCurrentUserAIVariable                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurrentUserAIState                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  playOverlayExternalMovie                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  playOverlayMovie                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  stopOverlayMovie                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isOverlayMoviePlaying                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  startCurrentUserScenePreloading                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurrentUserScenePreloadingStatus                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  forceModelToStayLoaded                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  forceResourceToStayLoaded                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isModelLoaded                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isResourceLoaded                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurrentUserMainCamera                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurrentUserActiveCamera                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCurrentUserActiveCamera                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  resetCurrentUserActiveCamera                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurrentUserViewportAspectRatio                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurrentUserViewportWidth                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurrentUserViewportHeight                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  saveCurrentUserViewportToTexture                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurrentUserEnvironmentVariableCount                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurrentUserEnvironmentVariableNameAt                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCurrentUserEnvironmentVariable                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurrentUserEnvironmentVariable                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  unsetCurrentUserEnvironmentVariable                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  clearCurrentUserEnvironment                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  saveCurrentUserEnvironment                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCurrentUserEnvironmentName                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurrentUserEnvironmentName                           ; , 0x01090002 )
            S3DX_AVAILABLE( AICallback  setCurrentUserEnvironmentTitle                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCurrentUserEnvironmentDescription                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  loadCurrentUserEnvironment                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurrentUserEnvironmentVariableStatus                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  saveCurrentUserEnvironmentVariable                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  loadCurrentUserEnvironmentVariable                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCurrentUserEnvironmentURL                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurrentUserEnvironmentURL                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  checkCurrentUserEnvironmentLocalStorageDevice           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  checkCurrentUserEnvironmentLocalStorageSpace            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  checkCurrentUserEnvironmentLocalStorageWriteAccess      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  checkCurrentUserEnvironmentLocalStorageExistence        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  checkCurrentUserEnvironmentLocalStorageValidity         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getLastFrameTime                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getAverageFrameTime                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setMinFrameTime                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setMaxFrameTime                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getTotalFrameTime                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  resetTotalFrameTime                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  resetAverageFrameTime                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setFrameTimeFactor                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getFrameTimeFactor                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setOption                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getOption                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  restart                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  quit                                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  mightBeCracked                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  flushAIEvents                                           ; , 0x01090003 )
        } ;

        struct CacheCallbacks
        {
            S3DX_AVAILABLE( AICallback  addFile                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  addStreamFile                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getFileStatus                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  pauseFileReceiving                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  resumeFileReceiving                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  cancelFileReceiving                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  sendFile                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getFileSendStatus                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  removeFile                                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getFileProperty                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getFileContentAsString                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  copyFileContent                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  createFile                                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  empty                                                   ; , 0x01090000 )
        } ;
               
        struct CameraCallbacks
        {
            S3DX_AVAILABLE( AICallback  setFieldOfView                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getFieldOfView                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setMinViewDistance                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMinViewDistance                                      ; , 0x01090000 ) 
            S3DX_AVAILABLE( AICallback  setMaxViewDistance                                      ; , 0x01090000 ) 
            S3DX_AVAILABLE( AICallback  getMaxViewDistance                                      ; , 0x01090000 )                                                                                                  
            S3DX_AVAILABLE( AICallback  projectPoint                                            ; , 0x01090000 )      
            S3DX_AVAILABLE( AICallback  unprojectPoint                                          ; , 0x01090000 )      
            S3DX_AVAILABLE( AICallback  isPointInFrustum                                        ; , 0x01090000 )      
            S3DX_AVAILABLE( AICallback  isSphereInFrustum                                       ; , 0x01090000 )      
            S3DX_AVAILABLE( AICallback  setAspectRatioScale                                     ; , 0x01090000 )      
            S3DX_AVAILABLE( AICallback  getAspectRatioScale                                     ; , 0x01090000 )      
            S3DX_AVAILABLE( AICallback  setMotionBlurFactor                                     ; , 0x01090000 )      
            S3DX_AVAILABLE( AICallback  getMotionBlurFactor                                     ; , 0x01090000 )      
            S3DX_AVAILABLE( AICallback  setVelocityBlurFactor                                   ; , 0x01090000 )   
            S3DX_AVAILABLE( AICallback  getVelocityBlurFactor                                   ; , 0x01090000 )      
            S3DX_AVAILABLE( AICallback  setDepthBlurFactor                                      ; , 0x01090000 )      
            S3DX_AVAILABLE( AICallback  getDepthBlurFactor                                      ; , 0x01090000 )      
            S3DX_AVAILABLE( AICallback  setDepthBlurFocusRangeMin                               ; , 0x01090000 )      
            S3DX_AVAILABLE( AICallback  getDepthBlurFocusRangeMin                               ; , 0x01090000 )      
            S3DX_AVAILABLE( AICallback  setDepthBlurFocusRangeMax                               ; , 0x01090000 )      
            S3DX_AVAILABLE( AICallback  getDepthBlurFocusRangeMax                               ; , 0x01090000 )      
            S3DX_AVAILABLE( AICallback  setDistortionFactor                                     ; , 0x01090000 )      
            S3DX_AVAILABLE( AICallback  getDistortionFactor                                     ; , 0x01090000 )      
            S3DX_AVAILABLE( AICallback  setDistortionAmplitude                                  ; , 0x01090000 )      
            S3DX_AVAILABLE( AICallback  getDistortionAmplitude                                  ; , 0x01090000 )      
            S3DX_AVAILABLE( AICallback  setDistortionFrequency                                  ; , 0x01090000 )      
            S3DX_AVAILABLE( AICallback  getDistortionFrequency                                  ; , 0x01090000 )      
            S3DX_AVAILABLE( AICallback  setDistortionTiling                                     ; , 0x01090000 )      
            S3DX_AVAILABLE( AICallback  getDistortionTiling                                     ; , 0x01090000 )      
            S3DX_AVAILABLE( AICallback  setDistortionMapFactor                                  ; , 0x01090005 )
            S3DX_AVAILABLE( AICallback  getDistortionMapFactor                                  ; , 0x01090005 )
            S3DX_AVAILABLE( AICallback  setDistortionMapAmplitude                               ; , 0x01090005 )
            S3DX_AVAILABLE( AICallback  getDistortionMapAmplitude                               ; , 0x01090005 )
            S3DX_AVAILABLE( AICallback  setDistortionMapUVOffset                                ; , 0x01090005 )
            S3DX_AVAILABLE( AICallback  getDistortionMapUVOffset                                ; , 0x01090005 )
            S3DX_AVAILABLE( AICallback  setDistortionMapUVScale                                 ; , 0x01090005 )
            S3DX_AVAILABLE( AICallback  getDistortionMapUVScale                                 ; , 0x01090005 )
            S3DX_AVAILABLE( AICallback  setDistortionMapAddressingMode                          ; , 0x01090006 )
            S3DX_AVAILABLE( AICallback  getDistortionMapAddressingMode                          ; , 0x01090006 )
            S3DX_AVAILABLE( AICallback  setDistortionMap                                        ; , 0x01090005 )
        } ;
       
        struct DebugCallbacks
        {
            S3DX_AVAILABLE( AICallback  drawLine                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getTotalMemoryUsed                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getLastFrameTotalDrawCalls                              ; , 0x01090005 )
            S3DX_AVAILABLE( AICallback  getLastFrameTotalTriangles                              ; , 0x01090005 )
            S3DX_AVAILABLE( AICallback  getLastFrameTotalVertices                               ; , 0x01090007 )
        } ;

        struct DynamicsCallbacks
        {
            S3DX_AVAILABLE( AICallback  getBodyType                                             ; , 0x01090000 )                                        
            S3DX_AVAILABLE( AICallback  createSphereBody                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  createBoxBody                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  createCapsuleBody                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  createCompositeBody                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  addCompositeBodySphereGeometry                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  addCompositeBodyBoxGeometry                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  addCompositeBodyCapsuleGeometry                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  finalizeCompositeBody                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  destroyBody                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setOffset                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getOffset                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setMass                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMass                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setFriction                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getFriction                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setBounce                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getBounce                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setBounceThreshold                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getBounceThreshold                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setLinearDamping                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setLinearDampingEx                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getLinearDamping                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setAngularDamping                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setAngularDampingEx                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getAngularDamping                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  addForce                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  addTorque                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  addLinearImpulse                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  addAngularImpulse                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getAngularVelocity                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setAngularVelocity                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setAngularSpeedLimit                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getLinearVelocity                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setLinearVelocity                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getLinearSpeed                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setLinearSpeedLimit                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setGuardBox                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableDynamics                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableCollisions                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableRotations                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableGuardBox                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableGravity                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableAutoIdle                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setAutoIdleLinearThreshold                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setAutoIdleAngularThreshold                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setAutoIdleTime                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setIdle                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isIdle                                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getLastCollisionTime                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getLastCollisionContactCount                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getLastCollisionContactPositionAt                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getLastCollisionContactNormalAt                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  createBallJoint                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  createSliderJoint                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  createHingeJoint                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  createHinge2Joint                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  createUniversalJoint                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  destroyJoint                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setBallJointAnchor                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setSliderJointAxis                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setHingeJointAnchor                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setHingeJointAxis                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setHingeJointAxisAngleLimitMin                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setHingeJointAxisAngleLimitMax                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setHingeJointAxisAngleLimitERP                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setHingeJointAxisAngleLimitCFM                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setHinge2JointAnchor                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setHinge2JointAxis1                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setHinge2JointAxis2                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setHinge2JointAxis1AngleLimitMin                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setHinge2JointAxis1AngleLimitMax                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setHinge2JointAxis1AngleLimitERP                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setHinge2JointAxis1AngleLimitCFM                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setHinge2JointAxis2MotorSpeedLimit                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setHinge2JointAxis2MotorAcceleration                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setHinge2JointAxis1SuspensionERP                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setHinge2JointAxis1SuspensionCFM                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setUniversalJointAnchor                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setUniversalJointAxis1                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setUniversalJointAxis2                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setUniversalJointAxis1AngleLimitMin                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setUniversalJointAxis1AngleLimitMax                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setUniversalJointAxis1AngleLimitERP                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setUniversalJointAxis1AngleLimitCFM                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setUniversalJointAxis2AngleLimitMin                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setUniversalJointAxis2AngleLimitMax                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setUniversalJointAxis2AngleLimitERP                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setUniversalJointAxis2AngleLimitCFM                     ; , 0x01090000 )
        } ;

        struct GroupCallbacks
        {
            S3DX_AVAILABLE( AICallback  getSubObjectCount                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSubObjectAt                                          ; , 0x01090000 )
        } ;
        
        struct HashtableCallbacks
        {
            S3DX_AVAILABLE( AICallback  isEmpty                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSize                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  get                                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getIndex                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getAt                                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getKeyAt                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  set                                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  empty                                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  add                                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  remove                                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  contains                                                ; , 0x01090000 )
        } ;

        struct HudCallbacks
        {
            S3DX_AVAILABLE( AICallback  checkValidity                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  newTemplateInstance                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  destroyTemplateInstance                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  newComponent                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  newAction                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  newTimer                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  destroyComponent                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  destroyAction                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  destroyTimer                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponentCount                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getActionCount                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getTimerCount                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponentAt                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getActionAt                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getTimerAt                                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setInitialAction                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setDefaultFont                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getDefaultFontName                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setDefaultTextShadowColor                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getDefaultTextShadowColor                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponent                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getAction                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setFocus                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setSoundBank                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSoundBankName                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  playSound                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  pauseSound                                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  resumeSound                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  stopSound                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  stopAllSounds                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setSoundVolume                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSoundPlaybackProgress                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isSoundPlaying                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isSoundPaused                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCursorVisible                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCursorPosition                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCursorPosition                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  forceCursorShape                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponentType                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setComponentZOrder                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponentZOrder                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setComponentContainer                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponentContainer                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setComponentOrigin                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponentOrigin                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setComponentOffscreenOutput                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setComponentPosition                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponentPosition                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setComponentSize                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponentSize                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setComponentRotation                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponentRotation                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setComponentOpacity                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponentOpacity                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setComponentVisible                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setComponentActive                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setComponentBackgroundImage                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponentBackgroundImageName                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setComponentBackgroundColor                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponentBackgroundColor                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setComponentForegroundColor                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponentForegroundColor                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setComponentBorderColor                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponentBorderColor                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setComponentFillMode                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponentFillMode                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setComponentBlendMode                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponentBlendMode                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setComponentShapeType                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponentShapeType                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setComponentShapeRoundRectangleCornerRadius             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponentShapeRoundRectangleCornerRadius             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setComponentOpacityWaveModifier                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setComponentAspectInvariant                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setComponentIgnoredByMouse                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setComponentAdjustedToNearestPixels                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  addComponentEventHandler                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  removeComponentEventHandler                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponentScreenSpaceCenter                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponentScreenSpaceBottomLeftCorner                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponentScreenSpaceTopLeftCorner                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponentScreenSpaceBottomRightCorner                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponentScreenSpaceTopRightCorner                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  matchComponentScreenSpaceCenter                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  matchComponentScreenSpaceBottomLeftCorner               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  matchComponentScreenSpaceTopLeftCorner                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  matchComponentScreenSpaceBottomRightCorner              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  matchComponentScreenSpaceTopRightCorner                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setComponentBackgroundImageUVOffset                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponentBackgroundImageUVOffset                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setComponentBackgroundImageUVScale                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponentBackgroundImageUVScale                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setComponentBackgroundImageAddressingMode               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponentBackgroundImageAddressingMode               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isComponentVisible                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isComponentActive                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponentTag                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setLabelText                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getLabelText                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setLabelTextHeight                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getLabelTextHeight                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setLabelTextLetterSpacing                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getLabelTextLetterSpacing                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setLabelTextLineSpacing                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getLabelTextLineSpacing                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setLabelTextAlignment                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getLabelTextAlignment                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setLabelTextCase                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getLabelTextCase                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setLabelTextEncoding                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getLabelTextEncoding                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setLabelTextDirection                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getLabelTextDirection                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setLabelTextDisplayRange                                ; , 0x01090008 )
            S3DX_AVAILABLE( AICallback  getLabelTextDisplayRange                                ; , 0x01090008 )
            S3DX_AVAILABLE( AICallback  setLabelFont                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getLabelFontName                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableLabelTextAntialiasing                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isLabelTextAntialiasingEnabled                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getLabelTextTotalLineCount                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setEditText                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getEditText                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setEditTextHeight                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getEditTextHeight                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setEditTextLetterSpacing                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getEditTextLetterSpacing                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setEditTextLineSpacing                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getEditTextLineSpacing                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setEditTextAlignment                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getEditTextAlignment                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setEditTextCase                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getEditTextCase                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setEditTextEncoding                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getEditTextEncoding                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setEditTextDirection                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getEditTextDirection                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setEditTextDisplayRange                                 ; , 0x01090008 )
            S3DX_AVAILABLE( AICallback  getEditTextDisplayRange                                 ; , 0x01090008 )
            S3DX_AVAILABLE( AICallback  setEditTextMaxLength                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getEditTextMaxLength                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setEditFont                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getEditFontName                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setEditOnChangedAction                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setEditSecure                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isEditSecure                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableEditTextAntialiasing                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isEditTextAntialiasingEnabled                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getEditTextTotalLineCount                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCheckText                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCheckText                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCheckTextHeight                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCheckTextHeight                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCheckTextLetterSpacing                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCheckTextLetterSpacing                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCheckTextLineSpacing                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCheckTextLineSpacing                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCheckTextAlignment                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCheckTextAlignment                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCheckTextCase                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCheckTextCase                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCheckTextEncoding                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCheckTextEncoding                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCheckTextDirection                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCheckTextDirection                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCheckIcons                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCheckFont                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCheckFontName                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCheckOnCheckedAction                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCheckOnUncheckedAction                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCheckState                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCheckState                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableCheckTextAntialiasing                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isCheckTextAntialiasingEnabled                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCheckTextTotalLineCount                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setButtonText                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getButtonText                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setButtonTextHeight                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getButtonTextHeight                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setButtonTextLetterSpacing                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getButtonTextLetterSpacing                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setButtonTextLineSpacing                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getButtonTextLineSpacing                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setButtonTextAlignment                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getButtonTextAlignment                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setButtonTextCase                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getButtonTextCase                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setButtonTextEncoding                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getButtonTextEncoding                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setButtonTextDirection                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getButtonTextDirection                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setButtonFont                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getButtonFontName                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setButtonOnClickAction                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setButtonOnClickedAction                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableButtonTextAntialiasing                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isButtonTextAntialiasingEnabled                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getButtonTextTotalLineCount                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setMovieClip                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setMovieExternalClip                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMovieBufferingProgress                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMoviePlaybackProgress                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMoviePlaybackCursor                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setMovieTransparentColor                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  playMovie                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  pauseMovie                                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  stopMovie                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setRenderMap                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getRenderMapName                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setPixelMap                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getPixelMapName                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getPixelMap                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setProgressValue                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getProgressValue                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setProgressType                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getProgressType                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getListItemCount                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  addListItem                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  removeListItemAt                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  selectListItemAt                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  removeListAllItems                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  selectListAllItems                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getListItemTextAt                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListItemTextAt                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListItemIconAt                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListItemsHeight                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getListItemsHeight                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListItemsBackgroundImage                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getListItemsBackgroundImageName                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListItemsBackgroundColor                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListItemsBackgroundColorOdd                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getListItemsBackgroundColorOdd                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListItemsBackgroundColorEven                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getListItemsBackgroundColorEven                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListItemsBackgroundImageSelected                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getListItemsBackgroundImageSelectedName                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListItemsBackgroundColorSelected                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getListItemsBackgroundColorSelected                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListItemsForegroundColorSelected                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getListItemsForegroundColorSelected                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListTextLeftMargin                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getListTextLeftMargin                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListTextRightMargin                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getListTextRightMargin                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListTextHeight                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getListTextHeight                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListTextLetterSpacing                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getListTextLetterSpacing                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListTextLineSpacing                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getListTextLineSpacing                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListTextFont                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getListTextFontName                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListTextCase                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getListTextCase                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListTextEncoding                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getListTextEncoding                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListTextDirection                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getListTextDirection                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableListTextAntialiasing                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isListTextAntialiasingEnabled                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getListColumnCount                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  addListColumn                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListColumnTextAlignmentAt                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListColumnWidthAt                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableListSelection                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableListSingleSelection                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableListSingleSelectionToggling                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableListSmoothScrolling                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableListFingerScrolling                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableListMouseWheelHandling                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getListSelectedItemCount                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getListSelectedItemAt                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListVerticalScrollPos                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getListVerticalScrollPos                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListVerticalScrollBarWidth                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListVerticalScrollBarArrowHeight                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListScrollBarBackgroundColor                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListScrollBarForegroundColor                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListScrollBarArrowColor                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListScrollBarBackgroundImages                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListScrollBarForegroundImages                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListScrollBarArrowImages                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setListOnSelectionChangedAction                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setSliderType                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSliderType                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setSliderRange                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSliderRange                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setSliderValue                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSliderValue                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setSliderThumbImage                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setSliderOnChangedAction                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  beginActionCommand                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  pushActionCommandArgument                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  pushActionCommandRuntimeArgument                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  endActionCommand                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setTimerOnTickAction                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setTimerTickTime                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  startTimer                                              ; , 0x01090008 )
            S3DX_AVAILABLE( AICallback  stopTimer                                               ; , 0x01090008 )
            S3DX_AVAILABLE( AICallback  callAction                                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  stopAction                                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  pauseAction                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  resumeAction                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  stopAllActions                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  pauseAllActions                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  resumeAllActions                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isActionRunning                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isActionPaused                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getUnderCursorComponent                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getUnderCursorListItem                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getFocusedComponent                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enterModalMode                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  leaveModalMode                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getComponentAtPoint                                     ; , 0x01090000 )
        } ;
               
        struct InputCallbacks
        {
            S3DX_AVAILABLE( AICallback  setJoypadVibrationsMagnitude                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getJoypadType                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableJoypadMotionSensors                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableJoypadIRMotionSensors                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableMultiTouch                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableVirtualMouse                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setVirtualMousePosition                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setVirtualMouseButtonDown                               ; , 0x01090000 )
        } ;
               
        struct LightCallbacks
        {
            S3DX_AVAILABLE( AICallback  getType                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isDynamic                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isActive                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setActive                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setColor                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getColor                                                ; , 0x01090000 )
        } ;
                 
        struct LogCallbacks
        {
            S3DX_AVAILABLE( AICallback  message                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  warning                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  error                                                   ; , 0x01090000 )
        } ;            
        
        struct MathCallbacks
        {
            S3DX_AVAILABLE( AICallback  clamp                                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  interpolate                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  sin                                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  cos                                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  tan                                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  asin                                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  acos                                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  atan                                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  atan2                                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  min                                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  max                                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  sqrt                                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  resetRandomSeed                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  random                                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  gaussianRandom                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  pow                                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  floor                                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  trunc                                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  roundToNearestInteger                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  roundToNearestPowerOfTwo                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  ceil                                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  abs                                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  mod                                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  log                                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  log10                                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  evaluateBSpline                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  evaluateBezier                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  evaluateCatmullRom                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  computeRayPlaneIntersection                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  computeRaySphereIntersection                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  computeRayAABoxIntersection                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  vectorAdd                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  vectorSubtract                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  vectorDotProduct                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  vectorCrossProduct                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  vectorNormalize                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  vectorLength                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  vectorScale                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  vectorInterpolate                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  vectorReflect                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  vectorSetLength                                         ; , 0x01090000 )
        } ;
        
        struct MeshCallbacks
        {
            S3DX_AVAILABLE( AICallback  getSubsetCount                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSubsetVertexCount                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSubsetIndexCount                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSubsetLODCount                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  addSubset                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  removeSubset                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  createSubsetVertexBuffer                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  destroySubsetVertexBuffer                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  createSubsetIndexBuffer                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  destroySubsetIndexBuffer                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  lockSubsetVertexBuffer                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  unlockSubsetVertexBuffer                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  lockSubsetIndexBuffer                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  unlockSubsetIndexBuffer                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setSubsetVertexPosition                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSubsetVertexPosition                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setSubsetVertexNormal                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSubsetVertexNormal                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setSubsetVertexTexCoord                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSubsetVertexTexCoord                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setSubsetIndexValue                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSubsetIndexValue                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getResourceHandle                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setSubsetVertexBufferDynamic                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isSubsetVertexBufferDynamic                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setSubsetIndexBufferDynamic                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isSubsetIndexBufferDynamic                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  computeSubsetVertexNormals                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  computeSubsetVertexTangents                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  updateBoundingVolumes                                   ; , 0x01090000 )
        } ;

        struct MicrophoneCallbacks
        {
            S3DX_AVAILABLE( AICallback  setRate                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enable                                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getActivityLevel                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableSpectrumAnalyzer                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setSpectrumWidth                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSpectrumWidth                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSpectrumLevels                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setRecordingQuality                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  startRecordingAsMusic                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  stopRecording                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  startDiffusion                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  stopDiffusion                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  addUserToDiffusionList                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  removeUserFromDiffusionList                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isUserInDiffusionList                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  emptyDiffusionList                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getDiffusionListUserCount                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getDiffusionListUserIDAt                                ; , 0x01090000 )
        } ;

        struct MusicCallbacks
        {
            S3DX_AVAILABLE( AICallback  play                                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  stop                                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setVolume                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getPlaybackProgress                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  playAdditional                                          ; , 0x01090000 )
        } ;

        struct NavigationCallbacks
        {
            S3DX_AVAILABLE( AICallback  setTargetNode                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setAcceleration                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getAcceleration                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setSpeedLimit                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSpeedLimit                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setHeightOffset                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getHeightOffset                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getNode                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getTargetNode                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getTargetNodeDistance                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSpeed                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getVelocity                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setRandomTargetNode                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setNearestTargetNode                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setNearestNode                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setPathMaxLength                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getPathMaxLength                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getPathNodeCount                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getPathNodeAt                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableNodesInBox                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableNode                                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getNodeTranslation                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isNodeOnBorder                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isNodeEnabled                                           ; , 0x01090000 )
        } ;

        struct NetworkCallbacks
        {
            S3DX_AVAILABLE( AICallback  authenticate                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  disconnect                                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getStatus                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getServerCount                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getServerNameAt                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCurrentServer                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurrentServer                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  createServer                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  searchForServers                                        ; , 0x01090000 )
        } ;

        struct ObjectCallbacks
        {
            S3DX_AVAILABLE( AICallback  getHashCode                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isEqualTo                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isKindOf                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  hasController                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getScene                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getParent                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setParent                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getModelName                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableDistanceClipping                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setDistanceClippingThresholds                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setDistanceClippingFadeTime                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCanBeReflected                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCanBeRefracted                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  canBeReflected                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  canBeRefracted                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  sendEvent                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  postEvent                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setTransformOption                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getTransformOption                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getTranslation                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getRotation                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getScale                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getDirection                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getXAxis                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getYAxis                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getZAxis                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  resetTranslation                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  matchTranslation                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setTranslation                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  translate                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  translateTo                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  resetRotation                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  matchRotation                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setRotation                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setRotationYPR                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setRotationAxisAngle                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  rotate                                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  rotateYPR                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  rotateAxisAngle                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  rotateTo                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  rotateToYPR                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  rotateToAxisAngle                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  rotateAround                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  lookAt                                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  lookAtWithUp                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setUniformScale                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setScale                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isActive                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setVisible                                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isVisible                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getDistanceToObject                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getBoundingSphereRadius                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getBoundingSphereCenter                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getBoundingBoxMin                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getBoundingBoxMax                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  addAIModel                                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  removeAIModel                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getAIModelCount                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getAIModelNameAt                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  hasAIModel                                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  hasAIEventHandler                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getAIVariable                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setAIVariable                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getAIState                                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setSoundBank                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setAnimBank                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  transformVector                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  transformPoint                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getChildCount                                           ; , 0x01090008 )
            S3DX_AVAILABLE( AICallback  getChildAt                                              ; , 0x01090008 )
       } ;

        struct PixelmapCallbacks
        {
            S3DX_AVAILABLE( AICallback  getResourceHandle                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getWidth                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getHeight                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  lock                                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  unlock                                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setPixel                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getPixel                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setPixels                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getPixels                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  createBrushFromTexture                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  createBrushFromRectangle                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  destroyBrush                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getBrushCount                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getBrushOrigin                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setBrushOrigin                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getBrushWidth                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getBrushHeight                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setPenColor                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setPenBrush                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setPenMode                                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setFillColor                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setFillBrush                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setFillMode                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setBlendMode                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  drawPoint                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  drawLine                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  drawRectangle                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  saveToTexture                                           ; , 0x01090000 )
        } ;

        struct ProjectorCallbacks
        {
            S3DX_AVAILABLE( AICallback  setColor                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getColor                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setOpacity                                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getOpacity                                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setFieldOfView                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getFieldOfView                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setMinClipDistance                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMinClipDistance                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setMaxClipDistance                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMaxClipDistance                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setMap                                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  playMapMovie                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  pauseMapMovie                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  stopMapMovie                                            ; , 0x01090000 )
        } ;

        struct SceneCallbacks
        {
            S3DX_AVAILABLE( AICallback  getName                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getUserCount                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getUserAt                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  sendEventToAllUsers                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  sendEventToAllObjects                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getTaggedObjectCount                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getTaggedObjectAt                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getTaggedObjectTagAt                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getTaggedObject                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getObjectTag                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setRuntimeObjectTag                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  createRuntimeObject                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  destroyRuntimeObject                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  combineRuntimeObjectsGroup                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setBackgroundColor                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getBackgroundColor                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setBackgroundOpacity                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getBackgroundOpacity                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setBackgroundTexture                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setBackgroundTextureUVOffset                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setBackgroundTextureUVScale                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setBackgroundTextureAddressingMode                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setBackgroundTextureFilteringMode                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setSkyBoxColor                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSkyBoxColor                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setSkyBoxFaceMap                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setAmbientColor                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getAmbientColor                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setShadowAmbientColor                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getShadowAmbientColor                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setFogDensity                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getFogDensity                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setFogColor                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getFogColor                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  createOcean                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  destroyOcean                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setOceanWavesAmplitude                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getOceanWavesAmplitude                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setOceanWavesMeanHeight                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getOceanWavesMeanHeight                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setOceanWavesFrequency                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getOceanWavesFrequency                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setOceanUnderwaterFogDensity                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getOceanUnderwaterFogDensity                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setOceanUnderwaterFogColor                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getOceanUnderwaterFogColor                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setOceanSurfaceColor                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getOceanSurfaceColor                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setOceanSurfaceColorFactor                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getOceanSurfaceColorFactor                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setOceanSurfaceColorMaxDistance                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getOceanSurfaceColorMaxDistance                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getOceanHeight                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getOceanNormal                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setOceanFoamMap                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setOceanFoamMapTiling                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getOceanFoamMapTiling                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setOceanNormalMapTiling                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getOceanNormalMapTiling                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setOceanReflectionNoiseScale                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getOceanReflectionNoiseScale                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setOceanRefractionNoiseScale                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getOceanRefractionNoiseScale                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setOceanFresnelPower                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getOceanFresnelPower                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setOceanFresnelBias                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getOceanFresnelBias                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setOceanReflectorBias                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getOceanReflectorBias                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setColorLevels                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getColorLevels                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setColorSaturation                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getColorSaturation                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setColorContrast                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getColorContrast                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setMonochromeFilter                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMonochromeFilter                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setBloomIntensity                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getBloomIntensity                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setBloomThreshold                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getBloomThreshold                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setBloomColoring                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getBloomColoring                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setBloomMotionBlurFactor                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getBloomMotionBlurFactor                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getObjectCount                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getObjectAt                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getFirstHitCollider                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getFirstHitColliderEx                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getFirstHitColliderWithID                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getFirstHitColliderWithIDEx                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getFirstHitSensor                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getFirstHitSensorWithID                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getFirstHitSensorWithIDInRange                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getFirstHitTerrainChunk                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getTerrainHeight                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getTerrainNormal                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getTerrainStatus                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setTerrainTextureFilteringMode                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setTerrainLODSwitchThreshold                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setTerrainVegetationLayerMaxVisibleInstances            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setTerrainVegetationLayerVisible                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setTerrainVegetationLayerTextureFilteringMode           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getTerrainVegetationLayerCount                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setDynamicsTimeStep                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getDynamicsTimeStep                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setDynamicsIterationsPerStep                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getDynamicsIterationsPerStep                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setDynamicsGravity                                      ; , 0x01090004 )
            S3DX_AVAILABLE( AICallback  getDynamicsGravity                                      ; , 0x01090004 )
            S3DX_AVAILABLE( AICallback  setPaused                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setPerPixelLightingMinScreenSize                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getPerPixelLightingMinScreenSize                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setNormalMappingMinScreenSize                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getNormalMappingMinScreenSize                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setNormalMappingFadeScreenSize                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getNormalMappingFadeScreenSize                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setSpecularLightingMinScreenSize                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSpecularLightingMinScreenSize                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setSpecularLightingFadeScreenSize                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSpecularLightingFadeScreenSize                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setDynamicShadowsFadeDistance                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getDynamicShadowsFadeDistance                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setDynamicShadowsMaxDistance                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getDynamicShadowsMaxDistance                            ; , 0x01090000 )
        } ;

        struct SensorCallbacks
        {
            S3DX_AVAILABLE( AICallback  getCount                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setActiveAt                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isActiveAt                                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setAllActive                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  removeAll                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  removeAt                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  add                                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getIDAt                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setIDAt                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getShapeTypeAt                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setSphereCenterAt                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setSphereRadiusAt                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSphereCenterAt                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSphereRadiusAt                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setBoxCenterAt                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setBoxSizeAt                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getBoxCenterAt                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getBoxSizeAt                                            ; , 0x01090000 )
        } ;

        struct ServerCallbacks
        {
            S3DX_AVAILABLE( AICallback  getStatus                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getName                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurrentPingDelay                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getAveragePingDelay                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSessionCount                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSessionNameAt                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSessionUserCountAt                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCurrentSession                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurrentSession                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  sendEvent                                               ; , 0x01090000 )
        } ;

        struct SessionCallbacks
        {
            S3DX_AVAILABLE( AICallback  getStatus                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getName                                                 ; , 0x01090000 )
        } ;

        struct SfxCallbacks
        {
            S3DX_AVAILABLE( AICallback  getParticleEmitterCount                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  startParticleEmitterAt                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  startAllParticleEmitters                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  stopParticleEmitterAt                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  stopAllParticleEmitters                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  pauseParticleEmitterAt                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  pauseAllParticleEmitters                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setParticleEmitterTranslationAt                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setParticleEmitterRotationAt                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setParticleEmitterUniformScaleAt                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setParticleEmitterGenerationRateAt                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setParticleEmitterLifeTimeFactorAt                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setParticleEmitterInitialSpeedFactorAt                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getParticleEmitterUniformScaleAt                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getParticleEmitterGenerationRateAt                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getParticleEmitterLifeTimeFactorAt                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getParticleEmitterInitialSpeedFactorAt                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getParticleEmitterAliveParticleCountAt                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getTrailCount                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setTrailAnchor0At                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setTrailAnchor1At                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  startTrailAt                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  pauseTrailAt                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  stopTrailAt                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  startAllTrails                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  pauseAllTrails                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  stopAllTrails                                           ; , 0x01090000 )
        } ;

        struct ShapeCallbacks
        {
            S3DX_AVAILABLE( AICallback  setMeshOpacity                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshOpacity                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshSubsetCount                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setMeshSubsetMaterial                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshSubsetMaterialName                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setMeshMaterial                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  compareMeshSubsetMaterial                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableMeshFrustumCulling                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  overrideMeshSubsetMaterialEmissive                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  overrideMeshSubsetMaterialAmbient                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  overrideMeshSubsetMaterialDiffuse                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  overrideMeshSubsetMaterialSpecular                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  overrideMeshSubsetMaterialOpacity                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  overrideMeshSubsetMaterialOpacityThreshold              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  overrideMeshSubsetMaterialEffectIntensity               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshSubsetMaterialEmissiveOverride                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshSubsetMaterialAmbientOverride                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshSubsetMaterialDiffuseOverride                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshSubsetMaterialSpecularOverride                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshSubsetMaterialOpacityOverride                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshSubsetMaterialOpacityThresholdOverride           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshSubsetMaterialEffectIntensityOverride            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  overrideMeshMaterialEmissive                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  overrideMeshMaterialAmbient                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  overrideMeshMaterialDiffuse                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  overrideMeshMaterialSpecular                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  overrideMeshSubsetMaterialEffectMap0                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  overrideMeshMaterialEffectMap0                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  overrideMeshSubsetMaterialEffectMap1                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  overrideMeshMaterialEffectMap1                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  overrideMeshSubsetMaterialNormalMap                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  overrideMeshMaterialNormalMap                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  overrideMeshSubsetMaterialSpecularMap                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  overrideMeshMaterialSpecularMap                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshSubsetMaterialEffectMap0                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshSubsetMaterialEffectMap1                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshSubsetMaterialNormalMap                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshSubsetMaterialSpecularMap                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshSubsetMaterialEffectMap0Override                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshSubsetMaterialEffectMap1Override                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshSubsetMaterialNormalMapOverride                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshSubsetMaterialSpecularMapOverride                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setMeshSubsetMaterialEffectMap0AdditionalUVOffset       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setMeshSubsetMaterialEffectMap0AdditionalUVScale        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setMeshSubsetMaterialEffectMap0AdditionalUVRotation     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setMeshSubsetMaterialEffectMap1AdditionalUVOffset       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setMeshSubsetMaterialEffectMap1AdditionalUVScale        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setMeshSubsetMaterialEffectMap1AdditionalUVRotation     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshSubsetMaterialEffectMap0AdditionalUVOffset       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshSubsetMaterialEffectMap0AdditionalUVScale        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshSubsetMaterialEffectMap0AdditionalUVRotation     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshSubsetMaterialEffectMap1AdditionalUVOffset       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshSubsetMaterialEffectMap1AdditionalUVScale        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshSubsetMaterialEffectMap1AdditionalUVRotation     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  playMeshSubsetMaterialEffectMap0Movie                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  pauseMeshSubsetMaterialEffectMap0Movie                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  stopMeshSubsetMaterialEffectMap0Movie                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshSubsetMaterialEffectMap0MovieBufferingProgress   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshSubsetMaterialEffectMap0MoviePlaybackProgress    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshSubsetMaterialEffectMap0MoviePlaybackCursor      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setMeshSubsetMaterialEffectMap0MovieTransparentColor    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMesh                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshName                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshTriangleCount                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMeshVertexCount                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSkeletonName                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSkeletonJointCount                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSkeletonJointNameAt                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  createRuntimeMesh                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  overrideSkeletonJointTranslation                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  overrideSkeletonJointRotation                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setSkeletonJointCustomScale                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSkeletonJointTranslation                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSkeletonJointRotation                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSkeletonJointXAxis                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSkeletonJointYAxis                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSkeletonJointZAxis                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSkeletonJointParentJointName                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  addSkeletonCloneModifier                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  addCurve                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  removeCurve                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurveCount                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  addCurvePoint                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  removeCurvePoint                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurvePointCount                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurvePoint                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCurvePoint                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCurveStartColor                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCurveEndColor                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCurveStartOpacity                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCurveEndOpacity                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurveStartColor                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurveEndColor                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  evaluateCurve                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurveLength                                          ; , 0x01090008 )
        } ;

        struct SoundCallbacks
        {
            S3DX_AVAILABLE( AICallback  play                                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  pause                                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  resume                                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  stop                                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setVolume                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setPitch                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isPlaying                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isPaused                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getPlaybackProgress                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setPlaybackProgress                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getName                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableSpatialization                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isSpatializationEnabled                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setSpatializationRolloffFactor                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSpatializationRolloffFactor                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setSpatializationReferenceDistance                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSpatializationReferenceDistance                      ; , 0x01090000 )
        } ;

        struct StringCallbacks
        {
            S3DX_AVAILABLE( AICallback  isEmpty                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getLength                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getByte                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  format                                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  replace                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  contains                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  findFirst                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  findFirstMatching                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  explode                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  lower                                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  upper                                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  toNumber                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSubString                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  crc32                                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  md5                                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  sha1                                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  hmacsha1                                                ; , 0x01090003 )
            S3DX_AVAILABLE( AICallback  reverse                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  compare                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  encodeHTML                                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  decodeHTML                                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  encodeURL                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  decodeURL                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  encodeBase64                                            ; , 0x01090003 )
        } ;

        struct SystemCallbacks
        {
            S3DX_AVAILABLE( AICallback  getOSType                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getOSVersion                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getOSVersionString                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getOSLanguage                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getGPUModelDescription                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getGPUDriverDescription                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getGPUCapability                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getDeviceUniqueIdentifier                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getDeviceModel                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getDeviceName                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSupportedScreenResolutionCount                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSupportedScreenResolutionAt                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCurrentScreenResolution                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getClientType                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setWakeLock                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getClipboardText                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setClipboardText                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getYear                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getMonth                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getDayOfMonth                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getDayOfWeek                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getTimeOfDay                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getUnixTimestampString                                  ; , 0x01090003 )
            S3DX_AVAILABLE( AICallback  areLocationUpdatesSupported                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  areLocationUpdatesEnabled                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableLocationUpdates                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getLastKnownLocation                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  areHeadingUpdatesSupported                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  areHeadingUpdatesEnabled                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  enableHeadingUpdates                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getLastKnownHeading                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getLastKnownTrueHeading                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  hasPersistentStorageManager                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  openPersistentStorageManager                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  openURL                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getHomeDirectory                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getDocumentsDirectory                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getPicturesDirectory                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  findFiles                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  findDirectories                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  install                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isInstalled                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getInstallationStatus                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  launch                                                  ; , 0x01090000 )
        } ;

        struct TableCallbacks
        {
            S3DX_AVAILABLE( AICallback  isEmpty                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSize                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getAt                                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getLast                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getFirst                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setAt                                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  empty                                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  add                                                     ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  removeAt                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  removeLast                                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  removeFirst                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  insertAt                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  contains                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  shuffle                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  reverse                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  swap                                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  reserve                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getRangeAt                                              ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setRangeAt                                              ; , 0x01090000 )
        } ;

        struct UserCallbacks
        {
            S3DX_AVAILABLE( AICallback  getSceneName                                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  isLocal                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getID                                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  sendEvent                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  postEvent                                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setLocalSoundSourceObject                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getLocalSoundSourceObject                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setLocalSoundSourceRolloffFactor                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getLocalSoundSourceRolloffFactor                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setLocalSoundSourceReferenceDistance                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getLocalSoundSourceReferenceDistance                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getAIModelCount                                         ; , 0x01090001 )
            S3DX_AVAILABLE( AICallback  getAIModelNameAt                                        ; , 0x01090001 )
            S3DX_AVAILABLE( AICallback  hasAIModel                                              ; , 0x01090001 )
            S3DX_AVAILABLE( AICallback  hasAIEventHandler                                       ; , 0x01090001 )
        } ;

        struct VideoCallbacks
        {
            S3DX_AVAILABLE( AICallback  getCaptureDeviceCount                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCaptureDeviceNameAt                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setActiveCaptureDevice                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  startCaptureToPixelMap                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  stopCapture                                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCaptureWidth                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCaptureHeight                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getCaptureHorizontalFlip                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCaptureWidth                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCaptureHeight                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCaptureRate                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setCaptureHorizontalFlip                                ; , 0x01090000 )
        } ;

        struct XmlCallbacks
        {
            S3DX_AVAILABLE( AICallback  getRootElement                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getElementName                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setElementName                                          ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getElementValue                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setElementValue                                         ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getElementChildCount                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getElementChildAt                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getElementAttributeCount                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getElementAttributeAt                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getElementAttributeWithName                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getElementParent                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getElementFirstChild                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getElementNextSibling                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getElementFirstChildWithName                            ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getElementNextSiblingWithName                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  appendElementChild                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  insertElementChildAt                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  appendElementChildElement                               ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  insertElementChildElementAt                             ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  removeElementChildAt                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  removeElementChild                                      ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  appendElementAttribute                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  removeElementAttributeAt                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  removeElementAttribute                                  ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getAttributeName                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setAttributeName                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getAttributeValue                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  setAttributeValue                                       ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  empty                                                   ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  toString                                                ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  createFromString                                        ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  send                                                    ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  receive                                                 ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getSendStatus                                           ; , 0x01090000 )
            S3DX_AVAILABLE( AICallback  getReceiveStatus                                        ; , 0x01090000 )
        } ;

        //-----------------------------------------------------------------------------
        // Inline functions provided for a simpler usage of the API. Grouped by package.
        //
        struct AnimationPackage
        {
            // Constants
            //
            const AIVariable        kPlaybackModeOnce                           ;
            const AIVariable        kPlaybackModeOnceReversed                   ;
            const AIVariable        kPlaybackModeLoop                           ;
            const AIVariable        kPlaybackModeLoopReversed                   ;
            const AIVariable        kPlaybackModeLoopMirrored                   ;

            AnimationPackage            (   ):
            kPlaybackModeOnce           ( 0 ),
            kPlaybackModeOnceReversed   ( 1 ),
            kPlaybackModeLoop           ( 2 ),
            kPlaybackModeLoopReversed   ( 3 ),
            kPlaybackModeLoopMirrored   ( 4 )
            { }

            // Functions
            //
            inline void             changeClip                                          ( const AIVariable& hObject, const AIVariable& nBlendLayer, const AIVariable& nClipIndex ) const { S3DX_DECLARE_VIN_03( hObject, nBlendLayer, nClipIndex ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->animation.setCurrentClip ( 3, vIn, NULL ) ; } // Deprecated
            inline void             setCurrentClip                                      ( const AIVariable& hObject, const AIVariable& nBlendLayer, const AIVariable& nClipIndex ) const { S3DX_DECLARE_VIN_03( hObject, nBlendLayer, nClipIndex ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->animation.setCurrentClip ( 3, vIn, NULL ) ; }
            inline AIVariable       getCurrentClip                                      ( const AIVariable& hObject, const AIVariable& nBlendLayer ) const { S3DX_DECLARE_VIN_02( hObject, nBlendLayer ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->animation.getCurrentClip ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             setPlaybackSpeed                                    ( const AIVariable& hObject, const AIVariable& nBlendLayer, const AIVariable& nSpeed ) const { S3DX_DECLARE_VIN_03( hObject, nBlendLayer, nSpeed ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->animation.setPlaybackSpeed ( 3, vIn, NULL ) ; }
            inline AIVariable       getPlaybackSpeed                                    ( const AIVariable& hObject, const AIVariable& nBlendLayer ) const { S3DX_DECLARE_VIN_02( hObject, nBlendLayer ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->animation.getPlaybackSpeed ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             setPlaybackLevel                                    ( const AIVariable& hObject, const AIVariable& nBlendLayer, const AIVariable& nLevel ) const { S3DX_DECLARE_VIN_03( hObject, nBlendLayer, nLevel ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->animation.setPlaybackLevel ( 3, vIn, NULL ) ; }
            inline AIVariable       getPlaybackLevel                                    ( const AIVariable& hObject, const AIVariable& nBlendLayer ) const { S3DX_DECLARE_VIN_02( hObject, nBlendLayer ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->animation.getPlaybackLevel ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             setPlaybackKeyFrameBegin                            ( const AIVariable& hObject, const AIVariable& nBlendLayer, const AIVariable& nKeyFrame ) const { S3DX_DECLARE_VIN_03( hObject, nBlendLayer, nKeyFrame ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->animation.setPlaybackKeyFrameBegin ( 3, vIn, NULL ) ; }
            inline AIVariable       getPlaybackKeyFrameBegin                            ( const AIVariable& hObject, const AIVariable& nBlendLayer ) const { S3DX_DECLARE_VIN_02( hObject, nBlendLayer ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->animation.getPlaybackKeyFrameBegin ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             setPlaybackKeyFrameEnd                              ( const AIVariable& hObject, const AIVariable& nBlendLayer, const AIVariable& nKeyFrame ) const { S3DX_DECLARE_VIN_03( hObject, nBlendLayer, nKeyFrame ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->animation.setPlaybackKeyFrameEnd ( 3, vIn, NULL ) ; }
            inline AIVariable       getPlaybackKeyFrameEnd                              ( const AIVariable& hObject, const AIVariable& nBlendLayer ) const { S3DX_DECLARE_VIN_02( hObject, nBlendLayer ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->animation.getPlaybackKeyFrameEnd ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             setPlaybackMode                                     ( const AIVariable& hObject, const AIVariable& nBlendLayer, const AIVariable& kMode ) const { S3DX_DECLARE_VIN_03( hObject, nBlendLayer, kMode ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->animation.setPlaybackMode ( 3, vIn, NULL ) ; }
            inline AIVariable       getPlaybackMode                                     ( const AIVariable& hObject, const AIVariable& nBlendLayer ) const { S3DX_DECLARE_VIN_02( hObject, nBlendLayer ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->animation.getPlaybackMode ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             setPlaybackCursor                                   ( const AIVariable& hObject, const AIVariable& nBlendLayer, const AIVariable& nCursor ) const { S3DX_DECLARE_VIN_03( hObject, nBlendLayer, nCursor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->animation.setPlaybackCursor ( 3, vIn, NULL ) ; }
            inline AIVariable       getPlaybackCursor                                   ( const AIVariable& hObject, const AIVariable& nBlendLayer ) const { S3DX_DECLARE_VIN_02( hObject, nBlendLayer ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->animation.getPlaybackCursor ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             matchPlaybackCursor                                 ( const AIVariable& hObject, const AIVariable& nBlendLayer, const AIVariable& nOtherBlendLayer ) const { S3DX_DECLARE_VIN_03( hObject, nBlendLayer, nOtherBlendLayer ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->animation.matchPlaybackCursor ( 3, vIn, NULL ) ; }
            inline void             setSkeletonScale                                    ( const AIVariable& hObject, const AIVariable& nBlendLayer, const AIVariable& nScale ) const { S3DX_DECLARE_VIN_03( hObject, nBlendLayer, nScale ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->animation.setSkeletonScale ( 3, vIn, NULL ) ; }
            inline AIVariable       getSkeletonScale                                    ( const AIVariable& hObject, const AIVariable& nBlendLayer ) const { S3DX_DECLARE_VIN_02( hObject, nBlendLayer ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->animation.getSkeletonScale ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             setObjectChannel                                    ( const AIVariable& hObject, const AIVariable& sChannel ) const { S3DX_DECLARE_VIN_02( hObject, sChannel ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->animation.setObjectChannel ( 2, vIn, NULL ) ; }
            inline AIVariable       getClipKeyFrameRangeMin                             ( const AIVariable& hObject, const AIVariable& nClipIndex ) const { S3DX_DECLARE_VIN_02( hObject, nClipIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->animation.getClipKeyFrameRangeMin ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getClipKeyFrameRangeMax                             ( const AIVariable& hObject, const AIVariable& nClipIndex ) const { S3DX_DECLARE_VIN_02( hObject, nClipIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->animation.getClipKeyFrameRangeMax ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getClipName                                         ( const AIVariable& hObject, const AIVariable& nClipIndex ) const { S3DX_DECLARE_VIN_02( hObject, nClipIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->animation.getClipName ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             setPlaybackIgnoreNotAnimatedChannels                ( const AIVariable& hObject, const AIVariable& nBlendLayer, const AIVariable& bIgnore ) const { S3DX_DECLARE_VIN_03( hObject, nBlendLayer, bIgnore ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->animation.setPlaybackIgnoreNotAnimatedChannels ( 3, vIn, NULL ) ; }
            inline AIVariable       getPlaybackIgnoreNotAnimatedChannels                ( const AIVariable& hObject, const AIVariable& nBlendLayer ) const { S3DX_DECLARE_VIN_02( hObject, nBlendLayer ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->animation.getPlaybackIgnoreNotAnimatedChannels ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             setPlaybackIgnoreIfCursorOutOfRange                 ( const AIVariable& hObject, const AIVariable& nBlendLayer, const AIVariable& bIgnore ) const { S3DX_DECLARE_VIN_03( hObject, nBlendLayer, bIgnore ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->animation.setPlaybackIgnoreIfCursorOutOfRange ( 3, vIn, NULL ) ; }
            inline AIVariable       getPlaybackIgnoreIfCursorOutOfRange                 ( const AIVariable& hObject, const AIVariable& nBlendLayer ) const { S3DX_DECLARE_VIN_02( hObject, nBlendLayer ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->animation.getPlaybackIgnoreIfCursorOutOfRange ( 2, vIn, &vOut ) ; return vOut ; }
        } ;

        struct ApplicationPackage
        {
            // Constants
            //
            const AIVariable        kStatusSaving                           ;
            const AIVariable        kStatusLoading                          ;
            const AIVariable        kStatusReady                            ;
            const AIVariable        kStatusNone                             ;
            const AIVariable        kOptionFullscreen                       ;
            const AIVariable        kOptionTexturesQuality                  ;
            const AIVariable        kOptionDynamicShadowsQuality            ;
            const AIVariable        kOptionSwapInterval                     ;
            const AIVariable        kOptionTerrainsQuality                  ;
            const AIVariable        kOptionNetworkStreams                   ;
            const AIVariable        kOptionShadersQuality                   ;
            const AIVariable        kOptionViewportRotation                 ;
            const AIVariable        kOptionAutomaticVirtualKeyboard         ;
            const AIVariable        kOptionFullscreenWidth                  ;                            
            const AIVariable        kOptionFullscreenHeight                 ;
            const AIVariable        kOptionDynamicShadowsBufferCount        ;
            const AIVariable        kOptionDynamicShadowsBufferSize         ;
            const AIVariable        kOptionDynamicShadowsScreenSpaceBlur    ;
            const AIVariable        kOptionDynamicShadowsPCFSampleCount     ;
            const AIVariable        kOptionDynamicShadowsConstantSampling   ;
            const AIVariable        kOptionHardwareOcclusion                ;
            const AIVariable        kOptionAudioMasterVolume                ;
            const AIVariable        kOptionTexturesAnisotropyLevel          ;
            const AIVariable        kOptionTexturesMipmapBias               ;
            const AIVariable        kOptionRenderingEnabled                 ;
            const AIVariable        kOptionNetworkStreamsUseBrowser         ;
            const AIVariable        kOptionMaxEventBouncesPerFrame          ;
            const AIVariable        kOptionPrioritizeEventBounces           ;
            const AIVariable        kResourceTypeAnimBank                   ;
            const AIVariable        kResourceTypeFont                       ;
            const AIVariable        kResourceTypeHUD                        ;
            const AIVariable        kResourceTypeMaterial                   ;
            const AIVariable        kResourceTypeMesh                       ;
            const AIVariable        kResourceTypeParticle                   ;
            const AIVariable        kResourceTypePixelMap                   ;
            const AIVariable        kResourceTypeSoundBank                  ;
            const AIVariable        kResourceTypeTexture                    ;
            const AIVariable        kResourceTypeTextureClip                ;
            const AIVariable        kResourceTypeTrail                      ;
            const AIVariable        kOptionMaxLightmapSize                  ; // 1.9.0.4
            const AIVariable        kOptionStereoscopic3DMode               ; // 1.9.0.4
            const AIVariable        kOptionStereoscopic3DSeparation         ; // 1.9.0.4
            const AIVariable        kOptionStereoscopic3DConvergence        ; // 1.9.0.4
            const AIVariable        kOptionUseSoftParticles                 ; // 1.9.0.5


            ApplicationPackage                      (    ):
            kStatusSaving                           (  3 ),
            kStatusLoading                          (  2 ),
            kStatusReady                            (  0 ),
            kStatusNone                             (  1 ),
            kOptionFullscreen                       (  0 ),
            kOptionTexturesQuality                  (  1 ),
            kOptionDynamicShadowsQuality            (  2 ),
            kOptionSwapInterval                     (  4 ),
            kOptionTerrainsQuality                  (  9 ),
            kOptionNetworkStreams                   ( 10 ),
            kOptionShadersQuality                   ( 11 ),
            kOptionViewportRotation                 ( 12 ),
            kOptionAutomaticVirtualKeyboard         ( 13 ),
            kOptionFullscreenWidth                  ( 14 ),
            kOptionFullscreenHeight                 ( 15 ),
            kOptionDynamicShadowsBufferCount        ( 16 ),
            kOptionDynamicShadowsBufferSize         ( 17 ),
            kOptionDynamicShadowsScreenSpaceBlur    ( 18 ),
            kOptionDynamicShadowsPCFSampleCount     ( 19 ),
            kOptionDynamicShadowsConstantSampling   ( 20 ),
            kOptionHardwareOcclusion                ( 21 ),
            kOptionAudioMasterVolume                ( 22 ),
            kOptionTexturesAnisotropyLevel          ( 23 ),
            kOptionTexturesMipmapBias               ( 24 ),
            kOptionRenderingEnabled                 ( 25 ),
            kOptionNetworkStreamsUseBrowser         ( 26 ),
            kOptionMaxEventBouncesPerFrame          ( 27 ),
            kOptionPrioritizeEventBounces           ( 28 ),
            kResourceTypeAnimBank                   ( 10 ),
            kResourceTypeFont                       (  4 ),
            kResourceTypeHUD                        ( 19 ),
            kResourceTypeMaterial                   (  3 ),
            kResourceTypeMesh                       (  2 ),
            kResourceTypeParticle                   ( 14 ),
            kResourceTypePixelMap                   ( 24 ),
            kResourceTypeSoundBank                  ( 18 ),
            kResourceTypeTexture                    (  1 ),
            kResourceTypeTextureClip                ( 17 ),
            kResourceTypeTrail                      ( 20 ),
            kOptionMaxLightmapSize                  ( 33 ), // 1.9.0.4
            kOptionStereoscopic3DMode               ( 30 ), // 1.9.0.4
            kOptionStereoscopic3DSeparation         ( 31 ), // 1.9.0.4
            kOptionStereoscopic3DConvergence        ( 32 ), // 1.9.0.4
            kOptionUseSoftParticles                 ( 34 )  // 1.9.0.5
            { }

            // Functions
            //
            inline AIVariable       getName                                             ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.getName ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getPackDirectory                                    ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.getPackDirectory ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getUserCount                                        ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.getUserCount ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getUserAt                                           ( const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_01( nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.getUserAt ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getUser                                             ( const AIVariable& nID ) const { S3DX_DECLARE_VIN_01( nID ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.getUser ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getCurrentUser                                      ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.getCurrentUser ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getCurrentUserScene                                 ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.getCurrentUserScene ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getCurrentUserSceneName                             ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.getCurrentUserSceneName ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       setCurrentUserScene                                 ( const AIVariable& sName ) const { S3DX_DECLARE_VIN_01( sName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.setCurrentUserScene ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       setCurrentUserScene                                 ( const AIVariable& sName, const AIVariable& sStreamingURL ) const { S3DX_DECLARE_VIN_02( sName, sStreamingURL ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.setCurrentUserScene ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getCurrentUserSceneTaggedObject                     ( const AIVariable& sObjectTag ) const { S3DX_DECLARE_VIN_01( sObjectTag ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.getCurrentUserSceneTaggedObject ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getCurrentUserAIVariable                            ( const AIVariable& sAIModel, const AIVariable& sVariable ) const { S3DX_DECLARE_VIN_02( sAIModel, sVariable ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.getCurrentUserAIVariable ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       setCurrentUserAIVariable                            ( const AIVariable& sAIModel, const AIVariable& sVariable, const AIVariable& vValue ) const { S3DX_DECLARE_VIN_03( sAIModel, sVariable, vValue ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.setCurrentUserAIVariable ( 3, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getCurrentUserAIState                               ( const AIVariable& sAIModel ) const { S3DX_DECLARE_VIN_01( sAIModel ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.getCurrentUserAIState ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       playOverlayExternalMovie                            ( const AIVariable& sPath ) const { S3DX_DECLARE_VIN_01( sPath ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.playOverlayExternalMovie ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       playOverlayMovie                                    ( const AIVariable& sName ) const { S3DX_DECLARE_VIN_01( sName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.playOverlayMovie ( 1, vIn, &vOut ) ; return vOut ; } 
            inline void             stopOverlayMovie                                    ( ) const { S3DX_MODULE_GUID::__pS3DXEAPIMI->application.stopOverlayMovie ( 0, NULL, NULL ) ; }
            inline AIVariable       isOverlayMoviePlaying                               ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.isOverlayMoviePlaying ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       startCurrentUserScenePreloading                     ( const AIVariable& sName ) const { S3DX_DECLARE_VIN_01( sName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.startCurrentUserScenePreloading ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getCurrentUserScenePreloadingStatus                 ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.getCurrentUserScenePreloadingStatus ( 0, NULL, &vOut ) ; return vOut ; }
            inline void             forceModelToStayLoaded                              ( const AIVariable& sModelName, const AIVariable& bForce ) const { S3DX_DECLARE_VIN_02( sModelName, bForce ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.forceModelToStayLoaded ( 2, vIn, NULL ) ; }
            inline void             forceResourceToStayLoaded                           ( const AIVariable& sResourceName, const AIVariable& kResourceType, const AIVariable& bForce ) const { S3DX_DECLARE_VIN_03( sResourceName, kResourceType, bForce ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.forceResourceToStayLoaded ( 3, vIn, NULL ) ; }
            inline AIVariable       isModelLoaded                                       ( const AIVariable& sModelName ) const { S3DX_DECLARE_VIN_01( sModelName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.isModelLoaded ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       isResourceLoaded                                    ( const AIVariable& sResourceName, const AIVariable& kResourceType ) const { S3DX_DECLARE_VIN_02( sResourceName, kResourceType ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.isResourceLoaded ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getCurrentUserMainCamera                            ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.getCurrentUserMainCamera ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getCurrentUserActiveCamera                          ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.getCurrentUserActiveCamera ( 0, NULL, &vOut ) ; return vOut ; }
            inline void             setCurrentUserActiveCamera                          ( const AIVariable& hCamera ) const { S3DX_DECLARE_VIN_01( hCamera ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.setCurrentUserActiveCamera ( 1, vIn, NULL ) ; }
            inline void             resetCurrentUserActiveCamera                        ( ) const { S3DX_MODULE_GUID::__pS3DXEAPIMI->application.resetCurrentUserActiveCamera ( 0, NULL, NULL ) ; }
            inline AIVariable       getCurrentUserViewportAspectRatio                   ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.getCurrentUserViewportAspectRatio ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getCurrentUserViewportWidth                         ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.getCurrentUserViewportWidth ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getCurrentUserViewportHeight                        ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.getCurrentUserViewportHeight ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       saveCurrentUserViewportToTexture                    ( const AIVariable& sTextureName, const AIVariable& nWidth, const AIVariable& nHeight ) const { S3DX_DECLARE_VIN_03( sTextureName, nWidth, nHeight ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.saveCurrentUserViewportToTexture ( 3, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getCurrentUserEnvironmentVariableCount              ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.getCurrentUserEnvironmentVariableCount ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getCurrentUserEnvironmentVariableNameAt             ( const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_01( nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.getUserAt ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setCurrentUserEnvironmentVariable                   ( const AIVariable& sName, const AIVariable& vValue ) const { S3DX_DECLARE_VIN_02( sName, vValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.setCurrentUserEnvironmentVariable ( 2, vIn, NULL ) ; }
            inline AIVariable       getCurrentUserEnvironmentVariable                   ( const AIVariable& sName ) const { S3DX_DECLARE_VIN_01( sName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.getCurrentUserEnvironmentVariable ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             unsetCurrentUserEnvironmentVariable                 ( const AIVariable& sName ) const { S3DX_DECLARE_VIN_01( sName ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.unsetCurrentUserEnvironmentVariable ( 1, vIn, NULL ) ; }
            inline void             clearCurrentUserEnvironment                         ( ) const { S3DX_MODULE_GUID::__pS3DXEAPIMI->application.clearCurrentUserEnvironment ( 0, NULL, NULL ) ; }
            inline AIVariable       saveCurrentUserEnvironment                          ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.saveCurrentUserEnvironment ( 0, NULL, &vOut ) ; return vOut ; }
            inline void             setCurrentUserEnvironmentName                       ( const AIVariable& sName ) const { S3DX_DECLARE_VIN_01( sName ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.setCurrentUserEnvironmentName ( 1, vIn, NULL ) ; }
            inline AIVariable       getCurrentUserEnvironmentName                       ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.getCurrentUserEnvironmentName ( 0, NULL, &vOut ) ; return vOut ; }
            inline void             setCurrentUserEnvironmentTitle                      ( const AIVariable& sTitle ) const { S3DX_DECLARE_VIN_01( sTitle ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.setCurrentUserEnvironmentTitle ( 1, vIn, NULL ) ; }
            inline void             setCurrentUserEnvironmentDescription                ( const AIVariable& sDescription ) const { S3DX_DECLARE_VIN_01( sDescription ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.setCurrentUserEnvironmentDescription ( 1, vIn, NULL ) ; }
            inline AIVariable       loadCurrentUserEnvironment                          ( const AIVariable& sName ) const { S3DX_DECLARE_VIN_01( sName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.loadCurrentUserEnvironment ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getCurrentUserEnvironmentVariableStatus             ( const AIVariable& sName ) const { S3DX_DECLARE_VIN_01( sName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.getCurrentUserEnvironmentVariableStatus ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             saveCurrentUserEnvironmentVariable                  ( const AIVariable& sName ) const { S3DX_DECLARE_VIN_01( sName ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.saveCurrentUserEnvironmentVariable ( 1, vIn, NULL ) ; }
            inline void             loadCurrentUserEnvironmentVariable                  ( const AIVariable& sName ) const { S3DX_DECLARE_VIN_01( sName ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.loadCurrentUserEnvironmentVariable ( 1, vIn, NULL ) ; }
            inline void             setCurrentUserEnvironmentURL                        ( const AIVariable& sURL ) const { S3DX_DECLARE_VIN_01( sURL ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.setCurrentUserEnvironmentURL ( 1, vIn, NULL ) ; }
            inline AIVariable       getCurrentUserEnvironmentURL                        ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.getCurrentUserEnvironmentURL ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       checkCurrentUserEnvironmentLocalStorageDevice       ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.checkCurrentUserEnvironmentLocalStorageDevice ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       checkCurrentUserEnvironmentLocalStorageSpace        ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.checkCurrentUserEnvironmentLocalStorageSpace ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       checkCurrentUserEnvironmentLocalStorageWriteAccess  ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.checkCurrentUserEnvironmentLocalStorageWriteAccess ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       checkCurrentUserEnvironmentLocalStorageExistence    ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.checkCurrentUserEnvironmentLocalStorageExistence ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       checkCurrentUserEnvironmentLocalStorageValidity     ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.checkCurrentUserEnvironmentLocalStorageValidity ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getLastFrameTime                                    ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.getLastFrameTime ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getAverageFrameTime                                 ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.getAverageFrameTime ( 0, NULL, &vOut ) ; return vOut ; }
            inline void             setMinFrameTime                                     ( const AIVariable& nTime ) const { S3DX_DECLARE_VIN_01( nTime ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.setMinFrameTime ( 1, vIn, NULL ) ; }
            inline void             setMaxFrameTime                                     ( const AIVariable& nTime ) const { S3DX_DECLARE_VIN_01( nTime ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.setMaxFrameTime ( 1, vIn, NULL ) ; }
            inline AIVariable       getTotalFrameTime                                   ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.getTotalFrameTime ( 0, NULL, &vOut ) ; return vOut ; }
            inline void             resetTotalFrameTime                                 ( const AIVariable& nInitialTime ) const { S3DX_DECLARE_VIN_01( nInitialTime ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.resetTotalFrameTime ( 1, vIn, NULL ) ; }
            inline void             resetAverageFrameTime                               ( const AIVariable& nSampleCount ) const { S3DX_DECLARE_VIN_01( nSampleCount ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.resetAverageFrameTime ( 1, vIn, NULL ) ; }
            inline void             setFrameTimeFactor                                  ( const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_01( nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.setFrameTimeFactor ( 1, vIn, NULL ) ; }
            inline AIVariable       getFrameTimeFactor                                  ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.getFrameTimeFactor ( 0, NULL, &vOut ) ; return vOut ; }
            inline void             setOption                                           ( const AIVariable& kOption, const AIVariable& nValue ) const { S3DX_DECLARE_VIN_02( kOption, nValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.setOption ( 2, vIn, NULL ) ; }
            inline AIVariable       getOption                                           ( const AIVariable& kOption ) const { S3DX_DECLARE_VIN_01( kOption ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.getOption ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             restart                                             ( ) const { S3DX_MODULE_GUID::__pS3DXEAPIMI->application.restart ( 0, NULL, NULL ) ; }
            inline void             quit                                                ( ) const { S3DX_MODULE_GUID::__pS3DXEAPIMI->application.quit ( 0, NULL, NULL ) ; }
            inline AIVariable       mightBeCracked                                      ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->application.mightBeCracked ( 0, NULL, &vOut ) ; return vOut ; }
            inline void             flushAIEvents                                       ( ) const { S3DX_MODULE_GUID::__pS3DXEAPIMI->application.flushAIEvents ( 0, NULL, NULL ) ; }
        } ;

        struct CachePackage
        {
            // Constants
            //
            const AIVariable        kPropertyWidth  ;
            const AIVariable        kPropertyHeight ;
            const AIVariable        kPropertySize   ;

            CachePackage            (   ):
            kPropertyWidth          ( 1 ),
            kPropertyHeight         ( 2 ),
            kPropertySize           ( 6 )
            { }

            // Functions
            //
            inline void             addFile                                             ( const AIVariable& sFileName, const AIVariable& sFileURI ) const { S3DX_DECLARE_VIN_02( sFileName, sFileURI ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->cache.addFile ( 2, vIn, NULL ) ; }
            inline void             addFile                                             ( const AIVariable& sFileName, const AIVariable& sFileURI, const AIVariable& sOptionalHeader ) const { S3DX_DECLARE_VIN_03( sFileName, sFileURI, sOptionalHeader ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->cache.addFile ( 3, vIn, NULL ) ; }
            inline void             addStreamFile                                       ( const AIVariable& sFileName, const AIVariable& sFileURI ) const { S3DX_DECLARE_VIN_02( sFileName, sFileURI ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->cache.addStreamFile ( 2, vIn, NULL ) ; }
            inline AIVariable       getFileStatus                                       ( const AIVariable& sFileName ) const { S3DX_DECLARE_VIN_01( sFileName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->cache.getFileStatus ( 1, vIn, &vOut ) ; return vOut ; } // Deprecated
            inline void             pauseFileReceiving                                  ( const AIVariable& sFileName ) const { S3DX_DECLARE_VIN_01( sFileName ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->cache.pauseFileReceiving ( 1, vIn, NULL ) ; }
            inline void             resumeFileReceiving                                 ( const AIVariable& sFileName ) const { S3DX_DECLARE_VIN_01( sFileName ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->cache.resumeFileReceiving ( 1, vIn, NULL ) ; }
            inline void             cancelFileReceiving                                 ( const AIVariable& sFileName ) const { S3DX_DECLARE_VIN_01( sFileName ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->cache.cancelFileReceiving ( 1, vIn, NULL ) ; }
            inline AIVariable       sendFile                                            ( const AIVariable& sFileName, const AIVariable& sFileURI ) const { S3DX_DECLARE_VIN_02( sFileName, sFileURI ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->cache.sendFile ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getFileSendStatus                                   ( const AIVariable& sFileName ) const { S3DX_DECLARE_VIN_01( sFileName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->cache.getFileSendStatus ( 1, vIn, &vOut ) ; return vOut ; } // Deprecated
            inline void             removeFile                                          ( const AIVariable& sFileName ) const { S3DX_DECLARE_VIN_01( sFileName ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->cache.removeFile ( 1, vIn, NULL ) ; }
            inline AIVariable       getFileProperty                                     ( const AIVariable& sFileName, const AIVariable& kProperty ) const { S3DX_DECLARE_VIN_02( sFileName, kProperty ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->cache.getFileProperty ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getFileContentAsString                              ( const AIVariable& sFileName ) const { S3DX_DECLARE_VIN_01( sFileName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->cache.getFileContentAsString ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       copyFileContent                                     ( const AIVariable& sFileName, const AIVariable& hBuffer ) const { S3DX_DECLARE_VIN_02( sFileName, hBuffer ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->cache.copyFileContent ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       createFile                                          ( const AIVariable& sFileName, const AIVariable& hBuffer, const AIVariable& nBufferSize ) const { S3DX_DECLARE_VIN_03( sFileName, hBuffer, nBufferSize ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->cache.createFile ( 3, vIn, &vOut ) ; return vOut ; }
            inline void             empty                                               ( ) const { S3DX_MODULE_GUID::__pS3DXEAPIMI->cache.empty ( 0, NULL, NULL ) ; }
        } ;

        struct CameraPackage
        {
            // Constants
            //
            const AIVariable        kMapTypeUnknown         ;
            const AIVariable        kMapTypeTexture         ;
            const AIVariable        kMapTypePixelMap        ;
            const AIVariable        kAddressingModeClamp    ; // 1.9.0.6
            const AIVariable        kAddressingModeRepeat   ; // 1.9.0.6

            CameraPackage           (   ):
            kMapTypeUnknown         ( 0 ),
            kMapTypeTexture         ( 1 ),
            kMapTypePixelMap        ( 5 ),
            kAddressingModeClamp    ( 1 ),  // 1.9.0.6
            kAddressingModeRepeat   ( 0 )   // 1.9.0.6
            { }

            // Functions
            //
            inline void             setFieldOfView                                      ( const AIVariable& hObject, const AIVariable& nAngle ) const { S3DX_DECLARE_VIN_02( hObject, nAngle ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.setFieldOfView ( 2, vIn, NULL ) ; }
            inline AIVariable       getFieldOfView                                      ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.getFieldOfView ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setMinViewDistance                                  ( const AIVariable& hObject, const AIVariable& nDistance ) const { S3DX_DECLARE_VIN_02( hObject, nDistance ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.setMinViewDistance ( 2, vIn, NULL ) ; }
            inline AIVariable       getMinViewDistance                                  ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.getMinViewDistance ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setMaxViewDistance                                  ( const AIVariable& hObject, const AIVariable& nDistance ) const { S3DX_DECLARE_VIN_02( hObject, nDistance ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.setMaxViewDistance ( 2, vIn, NULL ) ; }
            inline AIVariable       getMaxViewDistance                                  ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.getMaxViewDistance ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariables<3>   projectPoint                                        ( const AIVariable& hObject, const AIVariable& x, const AIVariable& y, const AIVariable& z ) const { S3DX_DECLARE_VIN_04( hObject, x, y, z ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.projectPoint ( 4, vIn, vOut ) ; return vOut ; }
            inline AIVariables<3>   unprojectPoint                                      ( const AIVariable& hObject, const AIVariable& x, const AIVariable& y, const AIVariable& z ) const { S3DX_DECLARE_VIN_04( hObject, x, y, z ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.unprojectPoint ( 4, vIn, vOut ) ; return vOut ; }
            inline AIVariable       isPointInFrustum                                    ( const AIVariable& hObject, const AIVariable& x, const AIVariable& y, const AIVariable& z ) const { S3DX_DECLARE_VIN_04( hObject, x, y, z ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.isPointInFrustum ( 4, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       isSphereInFrustum                                   ( const AIVariable& hObject, const AIVariable& x, const AIVariable& y, const AIVariable& z, const AIVariable& nRadius ) const { S3DX_DECLARE_VIN_05( hObject, x, y, z, nRadius ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.isSphereInFrustum ( 5, vIn, &vOut ) ; return vOut ; }
            inline void             setAspectRatioScale                                 ( const AIVariable& hObject, const AIVariable& nValue ) const { S3DX_DECLARE_VIN_02( hObject, nValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.setAspectRatioScale ( 2, vIn, NULL ) ; }
            inline AIVariable       getAspectRatioScale                                 ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.getAspectRatioScale ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setMotionBlurFactor                                 ( const AIVariable& hObject, const AIVariable& nValue ) const { S3DX_DECLARE_VIN_02( hObject, nValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.setMotionBlurFactor ( 2, vIn, NULL ) ; }
            inline AIVariable       getMotionBlurFactor                                 ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.getMotionBlurFactor ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setVelocityBlurFactor                               ( const AIVariable& hObject, const AIVariable& nValue ) const { S3DX_DECLARE_VIN_02( hObject, nValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.setVelocityBlurFactor ( 2, vIn, NULL ) ; }
            inline AIVariable       getVelocityBlurFactor                               ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.getVelocityBlurFactor ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setDepthBlurFactor                                  ( const AIVariable& hObject, const AIVariable& nValue ) const { S3DX_DECLARE_VIN_02( hObject, nValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.setDepthBlurFactor ( 2, vIn, NULL ) ; }
            inline AIVariable       getDepthBlurFactor                                  ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.getDepthBlurFactor ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setDepthBlurFocusRangeMin                           ( const AIVariable& hObject, const AIVariable& nValue ) const { S3DX_DECLARE_VIN_02( hObject, nValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.setDepthBlurFocusRangeMin ( 2, vIn, NULL ) ; }
            inline AIVariable       getDepthBlurFocusRangeMin                           ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.getDepthBlurFocusRangeMin ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setDepthBlurFocusRangeMax                           ( const AIVariable& hObject, const AIVariable& nValue ) const { S3DX_DECLARE_VIN_02( hObject, nValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.setDepthBlurFocusRangeMax ( 2, vIn, NULL ) ; }
            inline AIVariable       getDepthBlurFocusRangeMax                           ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.getDepthBlurFocusRangeMax ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setDistortionFactor                                 ( const AIVariable& hObject, const AIVariable& nValue ) const { S3DX_DECLARE_VIN_02( hObject, nValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.setDistortionFactor ( 2, vIn, NULL ) ; }
            inline AIVariable       getDistortionFactor                                 ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.getDistortionFactor ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setDistortionAmplitude                              ( const AIVariable& hObject, const AIVariable& nValue ) const { S3DX_DECLARE_VIN_02( hObject, nValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.setDistortionAmplitude ( 2, vIn, NULL ) ; }
            inline AIVariable       getDistortionAmplitude                              ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.getDistortionAmplitude ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setDistortionFrequency                              ( const AIVariable& hObject, const AIVariable& nValue ) const { S3DX_DECLARE_VIN_02( hObject, nValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.setDistortionFrequency ( 2, vIn, NULL ) ; }
            inline AIVariable       getDistortionFrequency                              ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.getDistortionFrequency ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setDistortionTiling                                 ( const AIVariable& hObject, const AIVariable& nValue ) const { S3DX_DECLARE_VIN_02( hObject, nValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.setDistortionTiling ( 2, vIn, NULL ) ; }
            inline AIVariable       getDistortionTiling                                 ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.getDistortionTiling ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setDistortionMapFactor                              ( const AIVariable& hObject, const AIVariable& nValue ) const { S3DX_DECLARE_VIN_02( hObject, nValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.setDistortionMapFactor ( 2, vIn, NULL ) ; }
            inline AIVariable       getDistortionMapFactor                              ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.getDistortionMapFactor ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setDistortionMapAmplitude                           ( const AIVariable& hObject, const AIVariable& nValue ) const { S3DX_DECLARE_VIN_02( hObject, nValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.setDistortionMapAmplitude ( 2, vIn, NULL ) ; }
            inline AIVariable       getDistortionMapAmplitude                           ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.getDistortionMapAmplitude ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setDistortionMapUVOffset                            ( const AIVariable& hObject, const AIVariable& u, const AIVariable& v ) const { S3DX_DECLARE_VIN_03( hObject, u, v ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.setDistortionMapUVOffset ( 3, vIn, NULL ) ; }
            inline AIVariables<2>   getDistortionMapUVOffset                            ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.getDistortionMapUVOffset ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setDistortionMapUVScale                             ( const AIVariable& hObject, const AIVariable& u, const AIVariable& v ) const { S3DX_DECLARE_VIN_03( hObject, u, v ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.setDistortionMapUVScale ( 3, vIn, NULL ) ; }
            inline AIVariables<2>   getDistortionMapUVScale                             ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.getDistortionMapUVScale ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setDistortionMapAddressingMode                      ( const AIVariable& hObject, const AIVariable& kAddressingModeU, const AIVariable& kAddressingModeV ) const { S3DX_DECLARE_VIN_03( hObject, kAddressingModeU, kAddressingModeV ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.setDistortionMapAddressingMode ( 3, vIn, NULL ) ; }
            inline AIVariables<2>   getDistortionMapAddressingMode                      ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.getDistortionMapAddressingMode ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setDistortionMap                                    ( const AIVariable& hObject, const AIVariable& sMapName, const AIVariable& kMapType ) const { S3DX_DECLARE_VIN_03( hObject, sMapName, kMapType ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->camera.setDistortionMap ( 3, vIn, NULL ) ; }
        } ;

        struct DebugPackage
        {
            // Functions
            //
            inline void             drawLine                                            ( const AIVariable& x1, const AIVariable& y1, const AIVariable& z1, const AIVariable& x2, const AIVariable& y2, const AIVariable& z2, const AIVariable& r, const AIVariable& g, const AIVariable& b, const AIVariable& a ) const { S3DX_DECLARE_VIN_10( x1, y1, z1, x2, y2, z2, r, g, b, a ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->debug.drawLine ( 10, vIn, NULL ) ; }
            inline AIVariable       getTotalMemoryUsed                                  ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->debug.getTotalMemoryUsed ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getLastFrameTotalDrawCalls                          ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->debug.getLastFrameTotalDrawCalls ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getLastFrameTotalTriangles                          ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->debug.getLastFrameTotalTriangles ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getLastFrameTotalVertices                           ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->debug.getLastFrameTotalVertices ( 0, NULL, &vOut ) ; return vOut ; }
       } ;

        struct DynamicsPackage
        {
            // Constants
            //
            const AIVariable        kTypeSphere     ;
            const AIVariable        kTypeBox        ;
            const AIVariable        kTypeCapsule    ;
            const AIVariable        kAxisX          ;
            const AIVariable        kAxisY          ;
            const AIVariable        kAxisZ          ;

            DynamicsPackage         (   ):
            kTypeSphere             ( 1 ),
            kTypeBox                ( 2 ),
            kTypeCapsule            ( 3 ),
            kAxisX                  ( 0 ),
            kAxisY                  ( 1 ),
            kAxisZ                  ( 2 )
            { }

            // Functions
            //
            inline AIVariable       getBodyType                                         ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.getBodyType ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       createSphereBody                                    ( const AIVariable& hObject, const AIVariable& nRadius ) const { S3DX_DECLARE_VIN_02( hObject, nRadius ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.createSphereBody ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       createBoxBody                                       ( const AIVariable& hObject, const AIVariable& nSx, const AIVariable& nSy, const AIVariable& nSz ) const { S3DX_DECLARE_VIN_04( hObject, nSx, nSy, nSz ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.createBoxBody ( 4, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       createCapsuleBody                                   ( const AIVariable& hObject, const AIVariable& nRadius, const AIVariable& nLength, const AIVariable& kAxis ) const { S3DX_DECLARE_VIN_04( hObject, nRadius, nLength, kAxis ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.createCapsuleBody ( 4, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       createCompositeBody                                 ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.createCompositeBody ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       addCompositeBodySphereGeometry                      ( const AIVariable& hObject, const AIVariable& nRadius, const AIVariable& nOx, const AIVariable& nOy, const AIVariable& nOz ) const { S3DX_DECLARE_VIN_05( hObject, nRadius, nOx, nOy, nOz ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.addCompositeBodySphereGeometry ( 5, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       addCompositeBodyBoxGeometry                         ( const AIVariable& hObject, const AIVariable& nSx, const AIVariable& nSy, const AIVariable& nSz, const AIVariable& nOx, const AIVariable& nOy, const AIVariable& nOz )  { S3DX_DECLARE_VIN_07( hObject, nSx, nSy, nSz, nOx, nOy, nOz ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.addCompositeBodyBoxGeometry ( 7, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       addCompositeBodyCapsuleGeometry                     ( const AIVariable& hObject, const AIVariable& nRadius, const AIVariable& nLength, const AIVariable& kAxis, const AIVariable& nOx, const AIVariable& nOy, const AIVariable& nOz ) const { S3DX_DECLARE_VIN_07( hObject, nRadius, nLength, kAxis, nOx, nOy, nOz ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.addCompositeBodyCapsuleGeometry ( 7, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       finalizeCompositeBody                               ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.finalizeCompositeBody ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             destroyBody                                         ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.destroyBody ( 1, vIn, NULL ) ; }
            inline void             setOffset                                           ( const AIVariable& hObject, const AIVariable& x, const AIVariable& y, const AIVariable& z ) const { S3DX_DECLARE_VIN_04( hObject, x, y, z ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setOffset ( 4, vIn, NULL ) ; }
            inline AIVariables<3>   getOffset                                           ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.getOffset ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setMass                                             ( const AIVariable& hObject, const AIVariable& nMass ) const { S3DX_DECLARE_VIN_02( hObject, nMass ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setMass ( 2, vIn, NULL ) ; }
            inline AIVariable       getMass                                             ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.getMass ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setFriction                                         ( const AIVariable& hObject, const AIVariable& nCoef ) const { S3DX_DECLARE_VIN_02( hObject, nCoef ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setFriction ( 2, vIn, NULL ) ; }
            inline AIVariable       getFriction                                         ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.getFriction ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setBounce                                           ( const AIVariable& hObject, const AIVariable& nCoef ) const { S3DX_DECLARE_VIN_02( hObject, nCoef ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setBounce ( 2, vIn, NULL ) ; }
            inline AIVariable       getBounce                                           ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.getBounce ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setBounceThreshold                                  ( const AIVariable& hObject, const AIVariable& nThreshold ) const { S3DX_DECLARE_VIN_02( hObject, nThreshold ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setBounceThreshold ( 2, vIn, NULL ) ; }
            inline AIVariable       getBounceThreshold                                  ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.getBounceThreshold ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setLinearDamping                                    ( const AIVariable& hObject, const AIVariable& nCoef ) const { S3DX_DECLARE_VIN_02( hObject, nCoef ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setLinearDamping ( 2, vIn, NULL ) ; }
            inline void             setLinearDampingEx                                  ( const AIVariable& hObject, const AIVariable& x, const AIVariable& y, const AIVariable& z ) const { S3DX_DECLARE_VIN_04( hObject, x, y, z ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setLinearDampingEx ( 4, vIn, NULL ) ; }
            inline AIVariables<3>   getLinearDamping                                    ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.getLinearDamping ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setAngularDamping                                   ( const AIVariable& hObject, const AIVariable& nCoef ) const { S3DX_DECLARE_VIN_02( hObject, nCoef ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setAngularDamping ( 2, vIn, NULL ) ; }
            inline void             setAngularDampingEx                                 ( const AIVariable& hObject, const AIVariable& x, const AIVariable& y, const AIVariable& z ) const { S3DX_DECLARE_VIN_04( hObject, x, y, z ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setAngularDampingEx ( 4, vIn, NULL ) ; }
            inline AIVariables<3>   getAngularDamping                                   ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.getAngularDamping ( 1, vIn, vOut ) ; return vOut ; }
            inline void             addForce                                            ( const AIVariable& hObject, const AIVariable& x, const AIVariable& y, const AIVariable& z, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_05( hObject, x, y, z, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.addForce ( 5, vIn, NULL ) ; }
            inline void             addTorque                                           ( const AIVariable& hObject, const AIVariable& x, const AIVariable& y, const AIVariable& z, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_05( hObject, x, y, z, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.addTorque ( 5, vIn, NULL ) ; }
            inline void             addLinearImpulse                                    ( const AIVariable& hObject, const AIVariable& x, const AIVariable& y, const AIVariable& z, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_05( hObject, x, y, z, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.addLinearImpulse ( 5, vIn, NULL ) ; }
            inline void             addAngularImpulse                                   ( const AIVariable& hObject, const AIVariable& x, const AIVariable& y, const AIVariable& z, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_05( hObject, x, y, z, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.addAngularImpulse ( 5, vIn, NULL ) ; }
            inline AIVariables<3>   getAngularVelocity                                  ( const AIVariable& hObject, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_02( hObject, kSpace ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.getAngularVelocity ( 2, vIn, vOut ) ; return vOut ; }
            inline void             setAngularVelocity                                  ( const AIVariable& hObject, const AIVariable& x, const AIVariable& y, const AIVariable& z, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_05( hObject, x, y, z, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setAngularVelocity ( 5, vIn, NULL ) ; }
            inline void             setAngularSpeedLimit                                ( const AIVariable& hObject, const AIVariable& nLimit ) const { S3DX_DECLARE_VIN_02( hObject, nLimit ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setAngularSpeedLimit ( 2, vIn, NULL ) ; }
            inline AIVariables<3>   getLinearVelocity                                   ( const AIVariable& hObject, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_02( hObject, kSpace ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.getLinearVelocity ( 2, vIn, vOut ) ; return vOut ; }
            inline void             setLinearVelocity                                   ( const AIVariable& hObject, const AIVariable& x, const AIVariable& y, const AIVariable& z, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_05( hObject, x, y, z, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setLinearVelocity ( 5, vIn, NULL ) ; }
            inline AIVariable       getLinearSpeed                                      ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.getLinearSpeed ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setLinearSpeedLimit                                 ( const AIVariable& hObject, const AIVariable& nLimit ) const { S3DX_DECLARE_VIN_02( hObject, nLimit ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setLinearSpeedLimit ( 2, vIn, NULL ) ; }
            inline void             setGuardBox                                         ( const AIVariable& hObject, const AIVariable& xmin, const AIVariable& ymin, const AIVariable& zmin, const AIVariable& xmax, const AIVariable& ymax, const AIVariable& zmax ) const { S3DX_DECLARE_VIN_07( hObject, xmin, ymin, zmin, xmax, ymax, zmax ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setGuardBox ( 7, vIn, NULL ) ; }
            inline void             enableDynamics                                      ( const AIVariable& hObject, const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_02( hObject, bEnable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.enableDynamics ( 2, vIn, NULL ) ; }
            inline void             enableCollisions                                    ( const AIVariable& hObject, const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_02( hObject, bEnable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.enableCollisions ( 2, vIn, NULL ) ; }
            inline void             enableRotations                                     ( const AIVariable& hObject, const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_02( hObject, bEnable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.enableRotations ( 2, vIn, NULL ) ; }
            inline void             enableGuardBox                                      ( const AIVariable& hObject, const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_02( hObject, bEnable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.enableGuardBox ( 2, vIn, NULL ) ; }
            inline void             enableGravity                                       ( const AIVariable& hObject, const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_02( hObject, bEnable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.enableGravity ( 2, vIn, NULL ) ; }
            inline void             enableAutoIdle                                      ( const AIVariable& hObject, const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_02( hObject, bEnable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.enableAutoIdle ( 2, vIn, NULL ) ; }
            inline void             setAutoIdleLinearThreshold                          ( const AIVariable& hObject, const AIVariable& nThreshold ) const { S3DX_DECLARE_VIN_02( hObject, nThreshold ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setAutoIdleLinearThreshold ( 2, vIn, NULL ) ; }
            inline void             setAutoIdleAngularThreshold                         ( const AIVariable& hObject, const AIVariable& nThreshold ) const { S3DX_DECLARE_VIN_02( hObject, nThreshold ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setAutoIdleAngularThreshold ( 2, vIn, NULL ) ; }
            inline void             setAutoIdleTime                                     ( const AIVariable& hObject, const AIVariable& nTime ) const { S3DX_DECLARE_VIN_02( hObject, nTime ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setAutoIdleTime ( 2, vIn, NULL ) ; }
            inline void             setIdle                                             ( const AIVariable& hObject, const AIVariable& bIdle ) const { S3DX_DECLARE_VIN_02( hObject, bIdle ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setIdle ( 2, vIn, NULL ) ; }
            inline AIVariable       isIdle                                              ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.isIdle ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getLastCollisionTime                                ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.getLastCollisionTime ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getLastCollisionContactCount                        ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.getLastCollisionContactCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getLastCollisionContactPositionAt                   ( const AIVariable& hObject, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hObject, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.getLastCollisionContactPositionAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getLastCollisionContactNormalAt                     ( const AIVariable& hObject, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hObject, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.getLastCollisionContactNormalAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       createBallJoint                                     ( const AIVariable& hObject, const AIVariable& hOtherObject, const AIVariable& sJointName ) const { S3DX_DECLARE_VIN_03( hObject, hOtherObject, sJointName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.createBallJoint ( 3, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       createSliderJoint                                   ( const AIVariable& hObject, const AIVariable& hOtherObject, const AIVariable& sJointName ) const { S3DX_DECLARE_VIN_03( hObject, hOtherObject, sJointName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.createSliderJoint ( 3, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       createHingeJoint                                    ( const AIVariable& hObject, const AIVariable& hOtherObject, const AIVariable& sJointName ) const { S3DX_DECLARE_VIN_03( hObject, hOtherObject, sJointName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.createHingeJoint ( 3, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       createHinge2Joint                                   ( const AIVariable& hObject, const AIVariable& hOtherObject, const AIVariable& sJointName ) const { S3DX_DECLARE_VIN_03( hObject, hOtherObject, sJointName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.createHinge2Joint ( 3, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       createUniversalJoint                                ( const AIVariable& hObject, const AIVariable& hOtherObject, const AIVariable& sJointName ) const { S3DX_DECLARE_VIN_03( hObject, hOtherObject, sJointName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.createUniversalJoint ( 3, vIn, &vOut ) ; return vOut ; }
            inline void             destroyJoint                                        ( const AIVariable& hObject, const AIVariable& sJointName ) const { S3DX_DECLARE_VIN_02( hObject, sJointName ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.destroyJoint ( 2, vIn, NULL ) ; }
            inline void             setBallJointAnchor                                  ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& x, const AIVariable& y, const AIVariable& z, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_06( hObject, sJointName, x, y, z, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setBallJointAnchor ( 6, vIn, NULL ) ; }
            inline void             setSliderJointAxis                                  ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& x, const AIVariable& y, const AIVariable& z, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_06( hObject, sJointName, x, y, z, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setSliderJointAxis ( 6, vIn, NULL ) ; }
            inline void             setHingeJointAnchor                                 ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& x, const AIVariable& y, const AIVariable& z, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_06( hObject, sJointName, x, y, z, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setHingeJointAnchor ( 6, vIn, NULL ) ; }
            inline void             setHingeJointAxis                                   ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& x, const AIVariable& y, const AIVariable& z, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_06( hObject, sJointName, x, y, z, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setHingeJointAxis ( 6, vIn, NULL ) ; }
            inline void             setHingeJointAxisAngleLimitMin                      ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& nAngle ) const { S3DX_DECLARE_VIN_03( hObject, sJointName, nAngle ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setHingeJointAxisAngleLimitMin ( 3, vIn, NULL ) ; }
            inline void             setHingeJointAxisAngleLimitMax                      ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& nAngle ) const { S3DX_DECLARE_VIN_03( hObject, sJointName, nAngle ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setHingeJointAxisAngleLimitMax ( 3, vIn, NULL ) ; }
            inline void             setHingeJointAxisAngleLimitERP                      ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& nAngle ) const { S3DX_DECLARE_VIN_03( hObject, sJointName, nAngle ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setHingeJointAxisAngleLimitERP ( 3, vIn, NULL ) ; }
            inline void             setHingeJointAxisAngleLimitCFM                      ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& nAngle ) const { S3DX_DECLARE_VIN_03( hObject, sJointName, nAngle ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setHingeJointAxisAngleLimitCFM ( 3, vIn, NULL ) ; }
            inline void             setHinge2JointAnchor                                ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& x, const AIVariable& y, const AIVariable& z, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_06( hObject, sJointName, x, y, z, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setHinge2JointAnchor ( 6, vIn, NULL ) ; }
            inline void             setHinge2JointAxis1                                 ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& x, const AIVariable& y, const AIVariable& z, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_06( hObject, sJointName, x, y, z, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setHinge2JointAxis1 ( 6, vIn, NULL ) ; }
            inline void             setHinge2JointAxis2                                 ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& x, const AIVariable& y, const AIVariable& z, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_06( hObject, sJointName, x, y, z, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setHinge2JointAxis2 ( 6, vIn, NULL ) ; }
            inline void             setHinge2JointAxis1AngleLimitMin                    ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& nAngle ) const { S3DX_DECLARE_VIN_03( hObject, sJointName, nAngle ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setHinge2JointAxis1AngleLimitMin ( 3, vIn, NULL ) ; }
            inline void             setHinge2JointAxis1AngleLimitMax                    ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& nAngle ) const { S3DX_DECLARE_VIN_03( hObject, sJointName, nAngle ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setHinge2JointAxis1AngleLimitMax ( 3, vIn, NULL ) ; }
            inline void             setHinge2JointAxis1AngleLimitERP                    ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& nAngle ) const { S3DX_DECLARE_VIN_03( hObject, sJointName, nAngle ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setHinge2JointAxis1AngleLimitERP ( 3, vIn, NULL ) ; }
            inline void             setHinge2JointAxis1AngleLimitCFM                    ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& nAngle ) const { S3DX_DECLARE_VIN_03( hObject, sJointName, nAngle ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setHinge2JointAxis1AngleLimitCFM ( 3, vIn, NULL ) ; }
            inline void             setHinge2JointAxis2MotorSpeedLimit                  ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& nSpeed ) const { S3DX_DECLARE_VIN_03( hObject, sJointName, nSpeed ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setHinge2JointAxis2MotorSpeedLimit ( 3, vIn, NULL ) ; }
            inline void             setHinge2JointAxis2MotorAcceleration                ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& nPower ) const { S3DX_DECLARE_VIN_03( hObject, sJointName, nPower ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setHinge2JointAxis2MotorAcceleration ( 3, vIn, NULL ) ; }
            inline void             setHinge2JointAxis1SuspensionERP                    ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& nValue ) const { S3DX_DECLARE_VIN_03( hObject, sJointName, nValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setHinge2JointAxis1SuspensionERP ( 3, vIn, NULL ) ; }
            inline void             setHinge2JointAxis1SuspensionCFM                    ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& nValue ) const { S3DX_DECLARE_VIN_03( hObject, sJointName, nValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setHinge2JointAxis1SuspensionCFM ( 3, vIn, NULL ) ; }
            inline void             setUniversalJointAnchor                             ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& x, const AIVariable& y, const AIVariable& z, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_06( hObject, sJointName, x, y, z, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setUniversalJointAnchor ( 6, vIn, NULL ) ; }
            inline void             setUniversalJointAxis1                              ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& x, const AIVariable& y, const AIVariable& z, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_06( hObject, sJointName, x, y, z, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setUniversalJointAxis1 ( 6, vIn, NULL ) ; }
            inline void             setUniversalJointAxis2                              ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& x, const AIVariable& y, const AIVariable& z, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_06( hObject, sJointName, x, y, z, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setUniversalJointAxis2 ( 6, vIn, NULL ) ; }
            inline void             setUniversalJointAxis1AngleLimitMin                 ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& nAngle ) const { S3DX_DECLARE_VIN_03( hObject, sJointName, nAngle ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setUniversalJointAxis1AngleLimitMin ( 3, vIn, NULL ) ; }
            inline void             setUniversalJointAxis1AngleLimitMax                 ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& nAngle ) const { S3DX_DECLARE_VIN_03( hObject, sJointName, nAngle ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setUniversalJointAxis1AngleLimitMax ( 3, vIn, NULL ) ; }
            inline void             setUniversalJointAxis1AngleLimitERP                 ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& nAngle ) const { S3DX_DECLARE_VIN_03( hObject, sJointName, nAngle ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setUniversalJointAxis1AngleLimitERP ( 3, vIn, NULL ) ; }
            inline void             setUniversalJointAxis1AngleLimitCFM                 ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& nAngle ) const { S3DX_DECLARE_VIN_03( hObject, sJointName, nAngle ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setUniversalJointAxis1AngleLimitCFM ( 3, vIn, NULL ) ; }
            inline void             setUniversalJointAxis2AngleLimitMin                 ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& nAngle ) const { S3DX_DECLARE_VIN_03( hObject, sJointName, nAngle ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setUniversalJointAxis2AngleLimitMin ( 3, vIn, NULL ) ; }
            inline void             setUniversalJointAxis2AngleLimitMax                 ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& nAngle ) const { S3DX_DECLARE_VIN_03( hObject, sJointName, nAngle ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setUniversalJointAxis2AngleLimitMax ( 3, vIn, NULL ) ; }
            inline void             setUniversalJointAxis2AngleLimitERP                 ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& nAngle ) const { S3DX_DECLARE_VIN_03( hObject, sJointName, nAngle ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setUniversalJointAxis2AngleLimitERP ( 3, vIn, NULL ) ; }
            inline void             setUniversalJointAxis2AngleLimitCFM                 ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& nAngle ) const { S3DX_DECLARE_VIN_03( hObject, sJointName, nAngle ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->dynamics.setUniversalJointAxis2AngleLimitCFM ( 3, vIn, NULL ) ; }
        } ;

        struct GroupPackage
        {
            // Functions
            //
            inline AIVariable       getSubObjectCount                                   ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->group.getSubObjectCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getSubObjectAt                                      ( const AIVariable& hObject, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hObject, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->group.getSubObjectAt ( 2, vIn, &vOut ) ; return vOut ; }
        } ;

        struct HashtablePackage
        {
            // Functions
            //
            inline AIVariable       isEmpty                                             ( const AIVariable& hHashTable ) const { S3DX_DECLARE_VIN_01( hHashTable ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hashtable.isEmpty ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getSize                                             ( const AIVariable& hHashTable ) const { S3DX_DECLARE_VIN_01( hHashTable ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hashtable.getSize ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       get                                                 ( const AIVariable& hHashTable, const AIVariable& sKey ) const { S3DX_DECLARE_VIN_02( hHashTable, sKey ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hashtable.get ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getIndex                                            ( const AIVariable& hHashTable, const AIVariable& sKey ) const { S3DX_DECLARE_VIN_02( hHashTable, sKey ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hashtable.getIndex ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getAt                                               ( const AIVariable& hHashTable, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hHashTable, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hashtable.getAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getKeyAt                                            ( const AIVariable& hHashTable, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hHashTable, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hashtable.getKeyAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             set                                                 ( const AIVariable& hHashTable, const AIVariable& sKey, const AIVariable& vValue ) const { S3DX_DECLARE_VIN_03( hHashTable, sKey, vValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hashtable.set ( 3, vIn, NULL ) ; }
            inline void             empty                                               ( const AIVariable& hHashTable ) const { S3DX_DECLARE_VIN_01( hHashTable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hashtable.empty ( 1, vIn, NULL ) ; }
            inline void             add                                                 ( const AIVariable& hHashTable, const AIVariable& sKey, const AIVariable& vValue ) const { S3DX_DECLARE_VIN_03( hHashTable, sKey, vValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hashtable.add ( 3, vIn, NULL ) ; }
            inline void             remove                                              ( const AIVariable& hHashTable, const AIVariable& sKey ) const { S3DX_DECLARE_VIN_02( hHashTable, sKey ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hashtable.remove ( 2, vIn, NULL ) ; }
            inline AIVariable       contains                                            ( const AIVariable& hHashTable, const AIVariable& sKey ) const { S3DX_DECLARE_VIN_02( hHashTable, sKey ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hashtable.contains ( 2, vIn, &vOut ) ; return vOut ; }
        } ;

        struct HudPackage
        {
            // Constants
            //
            const AIVariable        kComponentTypeContainer                         ;
            const AIVariable        kComponentTypeButton                            ;
            const AIVariable        kComponentTypeList                              ;
            const AIVariable        kComponentTypeLabel                             ;
            const AIVariable        kComponentTypePicture                           ;
            const AIVariable        kComponentTypeEdit                              ;
            const AIVariable        kComponentTypeMovie                             ;
            const AIVariable        kComponentTypeProgress                          ;
            const AIVariable        kComponentTypeSlider                            ;
            const AIVariable        kComponentTypeRenderMap                         ;
            const AIVariable        kComponentTypePixelMap                          ;
            const AIVariable        kComponentTypeCheck                             ;
            const AIVariable        kAddressingModeClamp                            ;
            const AIVariable        kAddressingModeRepeat                           ;
            const AIVariable        kEventTypeMouseEnter                            ;
            const AIVariable        kEventTypeMouseLeave                            ;
            const AIVariable        kEventTypeGainFocus                             ;
            const AIVariable        kEventTypeLooseFocus                            ;
            const AIVariable        kCommandTypeCallAction                          ;
            const AIVariable        kCommandTypeSetVisible                          ;
            const AIVariable        kCommandTypeSetActive                           ;
            const AIVariable        kCommandTypeSetFocus                            ;
            const AIVariable        kCommandTypeSetPosition                         ;
            const AIVariable        kCommandTypeSetSize                             ;
            const AIVariable        kCommandTypeSetOpacity                          ;
            const AIVariable        kCommandTypeInterpolatePosition                 ;
            const AIVariable        kCommandTypeInterpolateSize                     ;
            const AIVariable        kCommandTypeInterpolateOpacity                  ;
            const AIVariable        kCommandTypeSleep                               ;
            const AIVariable        kCommandTypeSetCursorVisible                    ;
            const AIVariable        kCommandTypeStartTimer                          ;
            const AIVariable        kCommandTypePauseTimer                          ;
            const AIVariable        kCommandTypeStopTimer                           ;
            const AIVariable        kCommandTypeSetCursorPosition                   ;
            const AIVariable        kCommandTypePlayMovie                           ;
            const AIVariable        kCommandTypePauseMovie                          ;
            const AIVariable        kCommandTypeStopMovie                           ;
            const AIVariable        kCommandTypeInterpolateProgressValue            ;
            const AIVariable        kCommandTypeSendEventToUser                     ;
            const AIVariable        kCommandTypeStopAction                          ;
            const AIVariable        kCommandTypePlaySound                           ;
            const AIVariable        kCommandTypeSetBackgroundColor                  ;
            const AIVariable        kCommandTypeSetForegroundColor                  ;
            const AIVariable        kCommandTypeSetBorderColor                      ;
            const AIVariable        kCommandTypeSetLabelText                        ;
            const AIVariable        kCommandTypeSetBackgroundImage                  ;
            const AIVariable        kCommandTypeInterpolateBackgroundColor          ;
            const AIVariable        kCommandTypeInterpolateForegroundColor          ;
            const AIVariable        kCommandTypeInterpolateBorderColor              ;
            const AIVariable        kCommandTypeSetButtonText                       ;
            const AIVariable        kCommandTypeSetEditText                         ;
            const AIVariable        kCommandTypeEnterModalMode                      ;
            const AIVariable        kCommandTypeLeaveModalMode                      ;
            const AIVariable        kCommandTypeSetCheckText                        ;
            const AIVariable        kCommandTypeSetCheckState                       ;
            const AIVariable        kCommandTypeMatchScreenSpaceCenter              ;
            const AIVariable        kCommandTypeMatchScreenSpaceBottomLeftCorner    ;
            const AIVariable        kCommandTypeMatchScreenSpaceTopLeftCorner       ;
            const AIVariable        kCommandTypeMatchScreenSpaceBottomRightCorner   ;
            const AIVariable        kCommandTypeMatchScreenSpaceTopRightCorner      ;
            const AIVariable        kCommandTypeInterpolateWidth                    ;
            const AIVariable        kCommandTypeInterpolateHeight                   ;
            const AIVariable        kCommandTypeSetWidth                            ;
            const AIVariable        kCommandTypeSetHeight                           ;
            const AIVariable        kCommandTypeMatchScreenSpaceWidth               ;
            const AIVariable        kCommandTypeMatchScreenSpaceHeight              ;
            const AIVariable        kCommandTypeCopyEditTextToRegister              ;
            const AIVariable        kCommandTypeCopyTagToRegister                   ;
            const AIVariable        kCommandTypeCopyCheckStateToRegister            ;
            const AIVariable        kCommandTypeCopyListItemTextToRegister          ;
            const AIVariable        kCommandTypeCopyListLastSelectedItemToRegister  ;
            const AIVariable        kCommandTypeCopyProgressValueToRegister         ;
            const AIVariable        kCommandTypeCopySliderValueToRegister           ;
            const AIVariable        kCommandTypeSetRotation                         ;
            const AIVariable        kCommandTypeInterpolateRotation                 ;
            const AIVariable        kCommandTypeSetBackgroundImageUVOffset          ;
            const AIVariable        kCommandTypeSetBackgroundImageUVScale           ;
            const AIVariable        kCommandTypeStopSound                           ;
            const AIVariable        kCommandTypePauseSound                          ;
            const AIVariable        kCommandTypeResumeSound                         ;
            const AIVariable        kCommandTypePlaySoundLoop                       ;
            const AIVariable        kInterpolatorTypeLinear                         ;
            const AIVariable        kInterpolatorTypePower2                         ;
            const AIVariable        kInterpolatorTypePower3                         ;
            const AIVariable        kInterpolatorTypePower4                         ;
            const AIVariable        kInterpolatorTypeRoot2                          ;
            const AIVariable        kInterpolatorTypeRoot3                          ;
            const AIVariable        kInterpolatorTypeRoot4                          ;
            const AIVariable        kInterpolatorTypeSpring1                        ;
            const AIVariable        kInterpolatorTypeSpring2                        ;
            const AIVariable        kInterpolatorTypeSpring3                        ;
            const AIVariable        kInterpolatorTypeSpring4                        ;
            const AIVariable        kInterpolatorTypeSpring5                        ;
            const AIVariable        kInterpolatorTypeSpring6                        ;
            const AIVariable        kRuntimeValueCurrentUserMainCamera              ;
            const AIVariable        kRuntimeValueCallArgument0                      ;
            const AIVariable        kRuntimeValueCallArgument1                      ;
            const AIVariable        kRuntimeValueCallArgument2                      ;
            const AIVariable        kRuntimeValueCallArgument3                      ;
            const AIVariable        kRuntimeValueCurrentUser                        ;
            const AIVariable        kRuntimeValueRegister0                          ;
            const AIVariable        kRuntimeValueRegister1                          ;
            const AIVariable        kRuntimeValueRegister2                          ;
            const AIVariable        kRuntimeValueRegister3                          ;
            const AIVariable        kFillModeSolid                                  ;
            const AIVariable        kBlendModeDefault                               ;
            const AIVariable        kBlendModeModulate                              ;
            const AIVariable        kBlendModeAdd                                   ;
            const AIVariable        kShapeTypeRectangle                             ;
            const AIVariable        kShapeTypeRoundRectangle                        ;
            const AIVariable        kShapeTypeEllipsoid                             ;
            const AIVariable        kKeyUp                                          ;
            const AIVariable        kKeyDown                                        ;
            const AIVariable        kKeyRight                                       ;
            const AIVariable        kKeyLeft                                        ;
            const AIVariable        kAlignCenter                                    ;
            const AIVariable        kAlignLeft                                      ;
            const AIVariable        kAlignRight                                     ;
            const AIVariable        kAlignJustify                                   ;
            const AIVariable        kAlignTop                                       ;
            const AIVariable        kCaseVariable                                   ;
            const AIVariable        kCaseFixed                                      ;
            const AIVariable        kEncodingASCII                                  ;
            const AIVariable        kEncodingUTF8                                   ;
            const AIVariable        kDirectionLeftToRight                           ;
            const AIVariable        kDirectionRightToLeft                           ;
            const AIVariable        kOriginCenter                                   ;
            const AIVariable        kOriginLeft                                     ;
            const AIVariable        kOriginRight                                    ;
            const AIVariable        kOriginTop                                      ;
            const AIVariable        kOriginBottom                                   ;
            const AIVariable        kOriginTopLeft                                  ;
            const AIVariable        kOriginTopRight                                 ;
            const AIVariable        kOriginBottomLeft                               ;
            const AIVariable        kOriginBottomRight                              ;
            const AIVariable        kProgressTypeLeftToRight                        ;
            const AIVariable        kProgressTypeRightToLeft                        ;
            const AIVariable        kProgressTypeBottomToTop                        ;
            const AIVariable        kProgressTypeTopToBottom                        ;
            const AIVariable        kSliderTypeLeftToRight                          ;
            const AIVariable        kSliderTypeRightToLeft                          ;
            const AIVariable        kSliderTypeBottomToTop                          ;
            const AIVariable        kSliderTypeTopToBottom                          ;
            const AIVariable        kWaveTypeConstant                               ;
            const AIVariable        kWaveTypeSinus                                  ;
            const AIVariable        kWaveTypeTriangle                               ;
            const AIVariable        kWaveTypeSquare                                 ;
            const AIVariable        kWaveTypeSawtooth                               ;
            const AIVariable        kWaveTypeSawtoothInv                            ;
            const AIVariable        kWaveTypeSinusNoise                             ;
            const AIVariable        kCursorShapeNone                                ;
            const AIVariable        kCursorShapeDefault                             ;
            const AIVariable        kCursorShapeHandPointing                        ;
            const AIVariable        kCursorShapeWaiting                             ;
            const AIVariable        kCursorShapeCross                               ;
            const AIVariable        kCursorShapeIBeam                               ;

            HudPackage                                      (    ):
            kComponentTypeContainer                         (  1 ),
            kComponentTypeButton                            (  2 ),
            kComponentTypeList                              (  3 ),
            kComponentTypeLabel                             (  4 ),
            kComponentTypePicture                           (  5 ),
            kComponentTypeEdit                              (  6 ),
            kComponentTypeMovie                             (  7 ),
            kComponentTypeProgress                          (  8 ),
            kComponentTypeSlider                            ( 11 ),
            kComponentTypeRenderMap                         ( 12 ),
            kComponentTypePixelMap                          ( 14 ),
            kComponentTypeCheck                             ( 15 ),
            kAddressingModeClamp                            (  1 ),
            kAddressingModeRepeat                           (  0 ),
            kEventTypeMouseEnter                            (  5 ),
            kEventTypeMouseLeave                            (  6 ),
            kEventTypeGainFocus                             (  7 ),
            kEventTypeLooseFocus                            (  8 ),
            kCommandTypeCallAction                          (  2 ),
            kCommandTypeSetVisible                          (  4 ),
            kCommandTypeSetActive                           (  5 ),
            kCommandTypeSetFocus                            (  6 ),
            kCommandTypeSetPosition                         (  7 ),
            kCommandTypeSetSize                             (  8 ),
            kCommandTypeSetOpacity                          (  9 ),
            kCommandTypeInterpolatePosition                 ( 10 ),
            kCommandTypeInterpolateSize                     ( 11 ),
            kCommandTypeInterpolateOpacity                  ( 12 ),
            kCommandTypeSleep                               ( 13 ),
            kCommandTypeSetCursorVisible                    ( 14 ),
            kCommandTypeStartTimer                          ( 15 ),
            kCommandTypePauseTimer                          ( 16 ),
            kCommandTypeStopTimer                           ( 17 ),
            kCommandTypeSetCursorPosition                   ( 18 ),
            kCommandTypePlayMovie                           ( 19 ),
            kCommandTypePauseMovie                          ( 20 ),
            kCommandTypeStopMovie                           ( 21 ),
            kCommandTypeInterpolateProgressValue            ( 22 ),
            kCommandTypeSendEventToUser                     ( 23 ),
            kCommandTypeStopAction                          ( 24 ),
            kCommandTypePlaySound                           ( 25 ),
            kCommandTypeSetBackgroundColor                  ( 26 ),
            kCommandTypeSetForegroundColor                  ( 27 ),
            kCommandTypeSetBorderColor                      ( 28 ),
            kCommandTypeSetLabelText                        ( 29 ),
            kCommandTypeSetBackgroundImage                  ( 30 ),
            kCommandTypeInterpolateBackgroundColor          ( 31 ),
            kCommandTypeInterpolateForegroundColor          ( 32 ),
            kCommandTypeInterpolateBorderColor              ( 33 ),
            kCommandTypeSetButtonText                       ( 34 ),
            kCommandTypeSetEditText                         ( 35 ),
            kCommandTypeEnterModalMode                      ( 36 ),
            kCommandTypeLeaveModalMode                      ( 37 ),
            kCommandTypeSetCheckText                        ( 38 ),
            kCommandTypeSetCheckState                       ( 39 ),
            kCommandTypeMatchScreenSpaceCenter              ( 40 ),
            kCommandTypeMatchScreenSpaceBottomLeftCorner    ( 41 ),
            kCommandTypeMatchScreenSpaceTopLeftCorner       ( 42 ),
            kCommandTypeMatchScreenSpaceBottomRightCorner   ( 43 ),
            kCommandTypeMatchScreenSpaceTopRightCorner      ( 44 ),
            kCommandTypeInterpolateWidth                    ( 45 ),
            kCommandTypeInterpolateHeight                   ( 46 ),
            kCommandTypeSetWidth                            ( 47 ),
            kCommandTypeSetHeight                           ( 48 ),
            kCommandTypeMatchScreenSpaceWidth               ( 49 ),
            kCommandTypeMatchScreenSpaceHeight              ( 50 ),
            kCommandTypeCopyEditTextToRegister              ( 51 ),
            kCommandTypeCopyTagToRegister                   ( 52 ),
            kCommandTypeCopyCheckStateToRegister            ( 53 ),
            kCommandTypeCopyListItemTextToRegister          ( 54 ),
            kCommandTypeCopyListLastSelectedItemToRegister  ( 55 ),
            kCommandTypeCopyProgressValueToRegister         ( 56 ),
            kCommandTypeCopySliderValueToRegister           ( 57 ),
            kCommandTypeSetRotation                         ( 58 ),
            kCommandTypeInterpolateRotation                 ( 59 ),
            kCommandTypeSetBackgroundImageUVOffset          ( 60 ),
            kCommandTypeSetBackgroundImageUVScale           ( 61 ),
            kCommandTypeStopSound                           ( 62 ),
            kCommandTypePauseSound                          ( 63 ),
            kCommandTypeResumeSound                         ( 64 ),
            kCommandTypePlaySoundLoop                       ( 65 ),
            kInterpolatorTypeLinear                         (  1 ),
            kInterpolatorTypePower2                         (  2 ),
            kInterpolatorTypePower3                         (  3 ),
            kInterpolatorTypePower4                         (  4 ),
            kInterpolatorTypeRoot2                          (  5 ),
            kInterpolatorTypeRoot3                          (  6 ),
            kInterpolatorTypeRoot4                          (  7 ),
            kInterpolatorTypeSpring1                        (  8 ),
            kInterpolatorTypeSpring2                        (  9 ),
            kInterpolatorTypeSpring3                        ( 10 ),
            kInterpolatorTypeSpring4                        ( 11 ),
            kInterpolatorTypeSpring5                        ( 12 ),
            kInterpolatorTypeSpring6                        ( 13 ),
            kRuntimeValueCurrentUserMainCamera              (  6 ),
            kRuntimeValueCallArgument0                      (  7 ),
            kRuntimeValueCallArgument1                      (  8 ),
            kRuntimeValueCallArgument2                      (  9 ),
            kRuntimeValueCallArgument3                      ( 10 ),
            kRuntimeValueCurrentUser                        ( 13 ),
            kRuntimeValueRegister0                          ( 14 ),
            kRuntimeValueRegister1                          ( 15 ),
            kRuntimeValueRegister2                          ( 16 ),
            kRuntimeValueRegister3                          ( 17 ),
            kFillModeSolid                                  (  0 ),
            kBlendModeDefault                               (  0 ),
            kBlendModeModulate                              (  1 ),
            kBlendModeAdd                                   (  2 ),
            kShapeTypeRectangle                             (  0 ),
            kShapeTypeRoundRectangle                        (  1 ),
            kShapeTypeEllipsoid                             (  2 ),
            kKeyUp                                          (  0 ),
            kKeyDown                                        (  1 ),
            kKeyRight                                       (  2 ),
            kKeyLeft                                        (  3 ),
            kAlignCenter                                    (  0 ),
            kAlignLeft                                      (  1 ),
            kAlignRight                                     (  2 ),
            kAlignJustify                                   (  3 ),
            kAlignTop                                       (  4 ),
            kCaseVariable                                   (  0 ),
            kCaseFixed                                      (  1 ),
            kEncodingASCII                                  (  0 ),
            kEncodingUTF8                                   (  1 ),
            kDirectionLeftToRight                           (  0 ),
            kDirectionRightToLeft                           (  1 ),
            kOriginCenter                                   (  0 ),
            kOriginLeft                                     (  1 ),
            kOriginRight                                    (  2 ),
            kOriginTop                                      (  3 ),
            kOriginBottom                                   (  4 ),
            kOriginTopLeft                                  (  5 ),
            kOriginTopRight                                 (  6 ),
            kOriginBottomLeft                               (  7 ),
            kOriginBottomRight                              (  8 ),
            kProgressTypeLeftToRight                        (  0 ),
            kProgressTypeRightToLeft                        (  1 ),
            kProgressTypeBottomToTop                        (  2 ),
            kProgressTypeTopToBottom                        (  3 ),
            kSliderTypeLeftToRight                          (  0 ),
            kSliderTypeRightToLeft                          (  1 ),
            kSliderTypeBottomToTop                          (  2 ),
            kSliderTypeTopToBottom                          (  3 ),
            kWaveTypeConstant                               (  0 ),
            kWaveTypeSinus                                  (  1 ),
            kWaveTypeTriangle                               (  2 ),
            kWaveTypeSquare                                 (  3 ),
            kWaveTypeSawtooth                               (  4 ),
            kWaveTypeSawtoothInv                            (  5 ),
            kWaveTypeSinusNoise                             (  6 ),
            kCursorShapeNone                                (  1 ),
            kCursorShapeDefault                             (  0 ),
            kCursorShapeHandPointing                        (  2 ),
            kCursorShapeWaiting                             (  6 ),
            kCursorShapeCross                               (  5 )
            { }

            // Functions
            //
            inline AIVariable       checkValidity                                       ( const AIVariable& hUser ) const { S3DX_DECLARE_VIN_01( hUser ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.checkValidity ( 1, vIn, &vOut ) ; return vOut ; } // Deprecated
            inline AIVariable       newTemplateInstance                                 ( const AIVariable& hUser, const AIVariable& sTemplate, const AIVariable& sPrefix ) const { S3DX_DECLARE_VIN_03( hUser, sTemplate, sPrefix ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.newTemplateInstance ( 3, vIn, &vOut ) ; return vOut ; }
            inline void             destroyTemplateInstance                             ( const AIVariable& hUser, const AIVariable& sPrefix ) const { S3DX_DECLARE_VIN_02( hUser, sPrefix ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.destroyTemplateInstance ( 2, vIn, NULL ) ; }
            inline AIVariable       newComponent                                        ( const AIVariable& hUser, const AIVariable& kType ) const { S3DX_DECLARE_VIN_02( hUser, kType ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.newComponent ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       newComponent                                        ( const AIVariable& hUser, const AIVariable& kType, const AIVariable& sOptionalTag ) const { S3DX_DECLARE_VIN_03( hUser, kType, sOptionalTag ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.newComponent ( 3, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       newAction                                           ( const AIVariable& hUser ) const { S3DX_DECLARE_VIN_01( hUser ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.newAction ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       newAction                                           ( const AIVariable& hUser, const AIVariable& sOptionalTag ) const { S3DX_DECLARE_VIN_02( hUser, sOptionalTag ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.newAction ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       newTimer                                            ( const AIVariable& hUser ) const { S3DX_DECLARE_VIN_01( hUser ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.newTimer ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             destroyComponent                                    ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.destroyComponent ( 1, vIn, NULL ) ; }
            inline void             destroyAction                                       ( const AIVariable& hAction ) const { S3DX_DECLARE_VIN_01( hAction ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.destroyAction ( 1, vIn, NULL ) ; }
            inline void             destroyTimer                                        ( const AIVariable& hTimer ) const { S3DX_DECLARE_VIN_01( hTimer ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.destroyTimer ( 1, vIn, NULL ) ; }
            inline AIVariable       getComponentCount                                   ( const AIVariable& hUser ) const { S3DX_DECLARE_VIN_01( hUser ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponentCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getActionCount                                      ( const AIVariable& hUser ) const { S3DX_DECLARE_VIN_01( hUser ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getActionCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getTimerCount                                       ( const AIVariable& hUser ) const { S3DX_DECLARE_VIN_01( hUser ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getTimerCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getComponentAt                                      ( const AIVariable& hUser, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hUser, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponentAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getActionAt                                         ( const AIVariable& hUser, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hUser, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getActionAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getTimerAt                                          ( const AIVariable& hUser, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hUser, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getTimerAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             setInitialAction                                    ( const AIVariable& hUser, const AIVariable& hAction ) const { S3DX_DECLARE_VIN_02( hUser, hAction ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setInitialAction ( 2, vIn, NULL ) ; } // Deprecated
            inline AIVariable       setDefaultFont                                      ( const AIVariable& hUser, const AIVariable& sFont ) const { S3DX_DECLARE_VIN_02( hUser, sFont ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setDefaultFont ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getDefaultFontName                                  ( const AIVariable& hUser ) const { S3DX_DECLARE_VIN_01( hUser ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getDefaultFontName ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setDefaultTextShadowColor                           ( const AIVariable& hUser, const AIVariable& nRed, const AIVariable& nGreen, const AIVariable& nBlue, const AIVariable& nAlpha ) const { S3DX_DECLARE_VIN_05( hUser, nRed, nGreen, nBlue, nAlpha ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setDefaultTextShadowColor ( 5, vIn, NULL ) ; }
            inline AIVariables<4>   getDefaultTextShadowColor                           ( const AIVariable& hUser ) const { S3DX_DECLARE_VIN_01( hUser ) ; AIVariables<4> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getDefaultTextShadowColor ( 1, vIn, vOut ) ; return vOut ; }
            inline AIVariable       getComponent                                        ( const AIVariable& hUser, const AIVariable& sTag ) const { S3DX_DECLARE_VIN_02( hUser, sTag ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponent ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getAction                                           ( const AIVariable& hUser, const AIVariable& sTag ) const { S3DX_DECLARE_VIN_02( hUser, sTag ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getAction ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       setFocus                                            ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setFocus ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       setSoundBank                                        ( const AIVariable& hUser, const AIVariable& sSoundBank ) const { S3DX_DECLARE_VIN_02( hUser, sSoundBank ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setSoundBank ( 2, vIn, &vOut ) ;  return vOut ; }
            inline AIVariable       getSoundBankName                                    ( const AIVariable& hUser ) const { S3DX_DECLARE_VIN_01( hUser ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getSoundBankName ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             playSound                                           ( const AIVariable& hUser, const AIVariable& nSoundIndex, const AIVariable& nVolume, const AIVariable& bLoop ) const { S3DX_DECLARE_VIN_04( hUser, nSoundIndex, nVolume, bLoop ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.playSound ( 4, vIn, NULL ) ; }
            inline void             pauseSound                                          ( const AIVariable& hUser, const AIVariable& nSoundIndex ) const { S3DX_DECLARE_VIN_02( hUser, nSoundIndex ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.pauseSound ( 2, vIn, NULL ) ; }
            inline void             resumeSound                                         ( const AIVariable& hUser, const AIVariable& nSoundIndex ) const { S3DX_DECLARE_VIN_02( hUser, nSoundIndex ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.resumeSound ( 2, vIn, NULL ) ; }
            inline void             stopSound                                           ( const AIVariable& hUser, const AIVariable& nSoundIndex ) const { S3DX_DECLARE_VIN_02( hUser, nSoundIndex ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.stopSound ( 2, vIn, NULL ) ; }
            inline void             stopAllSounds                                       ( const AIVariable& hUser ) const { S3DX_DECLARE_VIN_01( hUser ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.stopAllSounds ( 1, vIn, NULL ) ; }
            inline void             setSoundVolume                                      ( const AIVariable& hUser, const AIVariable& nSoundIndex, const AIVariable& nVolume ) const { S3DX_DECLARE_VIN_03( hUser, nSoundIndex, nVolume ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setSoundVolume ( 3, vIn, NULL ) ; }
            inline AIVariable       getSoundPlaybackProgress                            ( const AIVariable& hUser, const AIVariable& nSoundIndex ) const { S3DX_DECLARE_VIN_02( hUser, nSoundIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getSoundPlaybackProgress ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       isSoundPlaying                                      ( const AIVariable& hUser, const AIVariable& nSoundIndex ) const { S3DX_DECLARE_VIN_02( hUser, nSoundIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.isSoundPlaying ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       isSoundPaused                                       ( const AIVariable& hUser, const AIVariable& nSoundIndex ) const { S3DX_DECLARE_VIN_02( hUser, nSoundIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.isSoundPaused ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             setCursorVisible                                    ( const AIVariable& hUser, const AIVariable& bVisible ) const { S3DX_DECLARE_VIN_02( hUser, bVisible ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setCursorVisible ( 2, vIn, NULL ) ; }
            inline void             setCursorPosition                                   ( const AIVariable& hUser, const AIVariable& nPosX, const AIVariable& nPosY ) const { S3DX_DECLARE_VIN_03( hUser, nPosX, nPosY ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setCursorPosition ( 3, vIn, NULL ) ; }
            inline AIVariables<2>   getCursorPosition                                   ( const AIVariable& hUser ) const { S3DX_DECLARE_VIN_01( hUser ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getCursorPosition ( 1, vIn, vOut ) ; return vOut ; }
            inline void             forceCursorShape                                    ( const AIVariable& hUser, const AIVariable& kCursorShape ) const { S3DX_DECLARE_VIN_02( hUser, kCursorShape ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.forceCursorShape ( 2, vIn, NULL ) ; }
            inline AIVariable       getComponentType                                    ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponentType ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setComponentZOrder                                  ( const AIVariable& hComponent, const AIVariable& nZOrder ) const { S3DX_DECLARE_VIN_02( hComponent, nZOrder ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setComponentZOrder ( 2, vIn, NULL ) ; }
            inline AIVariable       getComponentZOrder                                  ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponentZOrder ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       setComponentContainer                               ( const AIVariable& hComponent, const AIVariable& hContainer ) const { S3DX_DECLARE_VIN_02( hComponent, hContainer ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setComponentContainer ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getComponentContainer                               ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponentContainer ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setComponentOrigin                                  ( const AIVariable& hComponent, const AIVariable& kOrigin ) const { S3DX_DECLARE_VIN_02( hComponent, kOrigin ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setComponentOrigin ( 2, vIn, NULL ) ; }
            inline AIVariable       getComponentOrigin                                  ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponentOrigin ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       setComponentOffscreenOutput                         ( const AIVariable& hComponent, const AIVariable& sRenderMap ) const { S3DX_DECLARE_VIN_02( hComponent, sRenderMap ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setComponentOffscreenOutput ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             setComponentPosition                                ( const AIVariable& hComponent, const AIVariable& nPosX, const AIVariable& nPosY ) const { S3DX_DECLARE_VIN_03( hComponent, nPosX, nPosY ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setComponentPosition ( 3, vIn, NULL ) ; }
            inline AIVariables<2>   getComponentPosition                                ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponentPosition ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setComponentSize                                    ( const AIVariable& hComponent, const AIVariable& nSizeX, const AIVariable& nSizeY ) const { S3DX_DECLARE_VIN_03( hComponent, nSizeX, nSizeY ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setComponentSize ( 3, vIn, NULL ) ; }
            inline AIVariables<2>   getComponentSize                                    ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponentSize ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setComponentRotation                                ( const AIVariable& hComponent, const AIVariable& nAngle ) const { S3DX_DECLARE_VIN_02( hComponent, nAngle ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setComponentRotation ( 2, vIn, NULL ) ; }
            inline AIVariable       getComponentRotation                                ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponentRotation ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setComponentOpacity                                 ( const AIVariable& hComponent, const AIVariable& nOpacity ) const { S3DX_DECLARE_VIN_02( hComponent, nOpacity ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setComponentOpacity ( 2, vIn, NULL ) ; }
            inline AIVariable       getComponentOpacity                                 ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponentOpacity ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setComponentVisible                                 ( const AIVariable& hComponent, const AIVariable& bVisible ) const { S3DX_DECLARE_VIN_02( hComponent, bVisible ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setComponentVisible ( 2, vIn, NULL ) ; }
            inline void             setComponentActive                                  ( const AIVariable& hComponent, const AIVariable& bActive ) const { S3DX_DECLARE_VIN_02( hComponent, bActive ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setComponentActive ( 2, vIn, NULL ) ; }
            inline AIVariable       setComponentBackgroundImage                         ( const AIVariable& hComponent, const AIVariable& sImageName ) const { S3DX_DECLARE_VIN_02( hComponent, sImageName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setComponentBackgroundImage ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getComponentBackgroundImageName                     ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponentBackgroundImageName ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setComponentBackgroundColor                         ( const AIVariable& hComponent, const AIVariable& nRed, const AIVariable& nGreen, const AIVariable& nBlue, const AIVariable& nAlpha ) const { S3DX_DECLARE_VIN_05( hComponent, nRed, nGreen, nBlue, nAlpha ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setComponentBackgroundColor ( 5, vIn, NULL ) ; }
            inline AIVariables<4>   getComponentBackgroundColor                         ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariables<4> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponentBackgroundColor ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setComponentForegroundColor                         ( const AIVariable& hComponent, const AIVariable& nRed, const AIVariable& nGreen, const AIVariable& nBlue, const AIVariable& nAlpha ) const { S3DX_DECLARE_VIN_05( hComponent, nRed, nGreen, nBlue, nAlpha ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setComponentForegroundColor ( 5, vIn, NULL ) ; }
            inline AIVariables<4>   getComponentForegroundColor                         ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariables<4> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponentForegroundColor ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setComponentBorderColor                             ( const AIVariable& hComponent, const AIVariable& nRed, const AIVariable& nGreen, const AIVariable& nBlue, const AIVariable& nAlpha ) const { S3DX_DECLARE_VIN_05( hComponent, nRed, nGreen, nBlue, nAlpha ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setComponentBorderColor ( 5, vIn, NULL ) ; }
            inline AIVariables<4>   getComponentBorderColor                             ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariables<4> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponentBorderColor ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setComponentFillMode                                ( const AIVariable& hComponent, const AIVariable& kFillMode ) const { S3DX_DECLARE_VIN_02( hComponent, kFillMode ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setComponentFillMode ( 2, vIn, NULL ) ; }
            inline AIVariable       getComponentFillMode                                ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponentFillMode ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setComponentBlendMode                               ( const AIVariable& hComponent, const AIVariable& kBlendMode ) const { S3DX_DECLARE_VIN_02( hComponent, kBlendMode ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setComponentBlendMode ( 2, vIn, NULL ) ; }
            inline AIVariable       getComponentBlendMode                               ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponentBlendMode ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setComponentShapeType                               ( const AIVariable& hComponent, const AIVariable& kShapeType ) const { S3DX_DECLARE_VIN_02( hComponent, kShapeType ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setComponentShapeType ( 2, vIn, NULL ) ; }
            inline AIVariable       getComponentShapeType                               ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponentShapeType ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setComponentShapeRoundRectangleCornerRadius         ( const AIVariable& hComponent, const AIVariable& nRadius ) const { S3DX_DECLARE_VIN_02( hComponent, nRadius ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setComponentShapeRoundRectangleCornerRadius ( 2, vIn, NULL ) ; }
            inline AIVariable       getComponentShapeRoundRectangleCornerRadius         ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponentShapeRoundRectangleCornerRadius ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setComponentOpacityWaveModifier                     ( const AIVariable& hComponent, const AIVariable& kWaveType, const AIVariable& nWaveBase, const AIVariable& nWaveAmplitude, const AIVariable& nWavePhase, const AIVariable& nWaveFrequency ) const { S3DX_DECLARE_VIN_06( hComponent, kWaveType, nWaveBase, nWaveAmplitude, nWavePhase, nWaveFrequency ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setComponentOpacityWaveModifier ( 6, vIn, NULL ) ; }
            inline void             setComponentAspectInvariant                         ( const AIVariable& hComponent, const AIVariable& bInvariant ) const { S3DX_DECLARE_VIN_02( hComponent, bInvariant ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setComponentAspectInvariant ( 2, vIn, NULL ) ; }
            inline void             setComponentIgnoredByMouse                          ( const AIVariable& hComponent, const AIVariable& bIgnored ) const { S3DX_DECLARE_VIN_02( hComponent, bIgnored ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setComponentIgnoredByMouse ( 2, vIn, NULL ) ; }
            inline void             setComponentAdjustedToNearestPixels                 ( const AIVariable& hComponent, const AIVariable& bAdjusted ) const { S3DX_DECLARE_VIN_02( hComponent, bAdjusted ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setComponentAdjustedToNearestPixels ( 2, vIn, NULL ) ; }
            inline void             addComponentEventHandler                            ( const AIVariable& hComponent, const AIVariable& kEventType, const AIVariable& hAction ) const { S3DX_DECLARE_VIN_03( hComponent, kEventType, hAction ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.addComponentEventHandler ( 3, vIn, NULL ) ; }
            inline void             removeComponentEventHandler                         ( const AIVariable& hComponent, const AIVariable& kEventType ) const { S3DX_DECLARE_VIN_02( hComponent, kEventType ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.removeComponentEventHandler ( 2, vIn, NULL ) ; }
            inline AIVariables<2>   getComponentScreenSpaceCenter                       ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponentScreenSpaceCenter ( 1, vIn, vOut ) ; return vOut ; }
            inline AIVariables<2>   getComponentScreenSpaceBottomLeftCorner             ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponentScreenSpaceBottomLeftCorner ( 1, vIn, vOut ) ; return vOut ; }
            inline AIVariables<2>   getComponentScreenSpaceTopLeftCorner                ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponentScreenSpaceTopLeftCorner ( 1, vIn, vOut ) ; return vOut ; }
            inline AIVariables<2>   getComponentScreenSpaceBottomRightCorner            ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponentScreenSpaceBottomRightCorner ( 1, vIn, vOut ) ; return vOut ; }
            inline AIVariables<2>   getComponentScreenSpaceTopRightCorner               ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponentScreenSpaceTopRightCorner ( 1, vIn, vOut ) ; return vOut ; }
            inline void             matchComponentScreenSpaceCenter                     ( const AIVariable& hComponent, const AIVariable& hOtherComponent ) const { S3DX_DECLARE_VIN_02( hComponent, hOtherComponent ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.matchComponentScreenSpaceCenter ( 2, vIn, NULL ) ; }
            inline void             matchComponentScreenSpaceBottomLeftCorner           ( const AIVariable& hComponent, const AIVariable& hOtherComponent ) const { S3DX_DECLARE_VIN_02( hComponent, hOtherComponent ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.matchComponentScreenSpaceBottomLeftCorner ( 2, vIn, NULL ) ; }
            inline void             matchComponentScreenSpaceTopLeftCorner              ( const AIVariable& hComponent, const AIVariable& hOtherComponent ) const { S3DX_DECLARE_VIN_02( hComponent, hOtherComponent ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.matchComponentScreenSpaceTopLeftCorner ( 2, vIn, NULL ) ; }
            inline void             matchComponentScreenSpaceBottomRightCorner          ( const AIVariable& hComponent, const AIVariable& hOtherComponent ) const { S3DX_DECLARE_VIN_02( hComponent, hOtherComponent ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.matchComponentScreenSpaceBottomRightCorner ( 2, vIn, NULL ) ; }
            inline void             matchComponentScreenSpaceTopRightCorner             ( const AIVariable& hComponent, const AIVariable& hOtherComponent ) const { S3DX_DECLARE_VIN_02( hComponent, hOtherComponent ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.matchComponentScreenSpaceTopRightCorner ( 2, vIn, NULL ) ; }
            inline void             setComponentBackgroundImageUVOffset                 ( const AIVariable& hComponent, const AIVariable& nOffsetU, const AIVariable& nOffsetV ) const { S3DX_DECLARE_VIN_03( hComponent, nOffsetU, nOffsetV ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setComponentBackgroundImageUVOffset ( 3, vIn, NULL ) ; }
            inline AIVariables<2>   getComponentBackgroundImageUVOffset                 ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponentBackgroundImageUVOffset ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setComponentBackgroundImageUVScale                  ( const AIVariable& hComponent, const AIVariable& nScaleU, const AIVariable& nScaleV ) const { S3DX_DECLARE_VIN_03( hComponent, nScaleU, nScaleV ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setComponentBackgroundImageUVScale ( 3, vIn, NULL ) ; }
            inline AIVariables<2>   getComponentBackgroundImageUVScale                  ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponentBackgroundImageUVScale ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setComponentBackgroundImageAddressingMode           ( const AIVariable& hComponent, const AIVariable& kAddressingModeU, const AIVariable& kAddressingModeV ) const { S3DX_DECLARE_VIN_03( hComponent, kAddressingModeU, kAddressingModeV ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setComponentBackgroundImageAddressingMode ( 3, vIn, NULL ) ; }
            inline AIVariables<2>   getComponentBackgroundImageAddressingMode           ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponentBackgroundImageAddressingMode ( 1, vIn, vOut ) ; return vOut ; }
            inline AIVariable       isComponentVisible                                  ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.isComponentVisible ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       isComponentActive                                   ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.isComponentActive ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getComponentTag                                     ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponentTag ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setLabelText                                        ( const AIVariable& hComponent, const AIVariable& sText ) const { S3DX_DECLARE_VIN_02( hComponent, sText ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setLabelText ( 2, vIn, NULL ) ; }
            inline AIVariable       getLabelText                                        ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getLabelText ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setLabelTextHeight                                  ( const AIVariable& hComponent, const AIVariable& nTextHeight ) const { S3DX_DECLARE_VIN_02( hComponent, nTextHeight ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setLabelTextHeight ( 2, vIn, NULL ) ; }
            inline AIVariable       getLabelTextHeight                                  ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getLabelTextHeight ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setLabelTextLetterSpacing                           ( const AIVariable& hComponent, const AIVariable& nSpacing ) const { S3DX_DECLARE_VIN_02( hComponent, nSpacing ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setLabelTextLetterSpacing ( 2, vIn, NULL ) ; }
            inline AIVariable       getLabelTextLetterSpacing                           ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getLabelTextLetterSpacing ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setLabelTextLineSpacing                             ( const AIVariable& hComponent, const AIVariable& nSpacing ) const { S3DX_DECLARE_VIN_02( hComponent, nSpacing ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setLabelTextLineSpacing ( 2, vIn, NULL ) ; }
            inline AIVariable       getLabelTextLineSpacing                             ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getLabelTextLineSpacing ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setLabelTextAlignment                               ( const AIVariable& hComponent, const AIVariable& kHAlignment, const AIVariable& kVAlignment ) const { S3DX_DECLARE_VIN_03( hComponent, kHAlignment, kVAlignment ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setLabelTextAlignment ( 3, vIn, NULL ) ; }
            inline AIVariables<2>   getLabelTextAlignment                               ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getLabelTextAlignment ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setLabelTextCase                                    ( const AIVariable& hComponent, const AIVariable& kCase ) const { S3DX_DECLARE_VIN_02( hComponent, kCase ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setLabelTextCase ( 2, vIn, NULL ) ; }
            inline AIVariable       getLabelTextCase                                    ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getLabelTextCase ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setLabelTextEncoding                                ( const AIVariable& hComponent, const AIVariable& kEncoding ) const { S3DX_DECLARE_VIN_02( hComponent, kEncoding ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setLabelTextEncoding ( 2, vIn, NULL ) ; }
            inline AIVariable       getLabelTextEncoding                                ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getLabelTextEncoding ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setLabelTextDirection                               ( const AIVariable& hComponent, const AIVariable& kDirection ) const { S3DX_DECLARE_VIN_02( hComponent, kDirection ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setLabelTextDirection ( 2, vIn, NULL ) ; }
            inline AIVariable       getLabelTextDirection                               ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getLabelTextDirection ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setLabelTextDisplayRange                            ( const AIVariable& hComponent, const AIVariable& nRangeMin, const AIVariable& nRangeMax ) const { S3DX_DECLARE_VIN_03( hComponent, nRangeMin, nRangeMax ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setLabelTextDisplayRange ( 3, vIn, NULL ) ; }
            inline AIVariables<2>   getLabelTextDisplayRange                            ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getLabelTextDisplayRange ( 1, vIn, vOut ) ; return vOut ; }
            inline AIVariable       setLabelFont                                        ( const AIVariable& hComponent, const AIVariable& sFontName ) const { S3DX_DECLARE_VIN_02( hComponent, sFontName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setLabelFont ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getLabelFontName                                    ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getLabelFontName ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             enableLabelTextAntialiasing                         ( const AIVariable& hComponent, const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_02( hComponent, bEnable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.enableLabelTextAntialiasing ( 2, vIn, NULL ) ; }
            inline AIVariable       isLabelTextAntialiasingEnabled                      ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.isLabelTextAntialiasingEnabled ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getLabelTextTotalLineCount                          ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getLabelTextTotalLineCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setEditText                                         ( const AIVariable& hComponent, const AIVariable& sText ) const { S3DX_DECLARE_VIN_02( hComponent, sText ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setEditText ( 2, vIn, NULL ) ; }
            inline AIVariable       getEditText                                         ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getEditText ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setEditTextHeight                                   ( const AIVariable& hComponent, const AIVariable& nTextHeight ) const { S3DX_DECLARE_VIN_02( hComponent, nTextHeight ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setEditTextHeight ( 2, vIn, NULL ) ; }
            inline AIVariable       getEditTextHeight                                   ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getEditTextHeight ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setEditTextLetterSpacing                            ( const AIVariable& hComponent, const AIVariable& nSpacing ) const { S3DX_DECLARE_VIN_02( hComponent, nSpacing ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setEditTextLetterSpacing ( 2, vIn, NULL ) ; }
            inline AIVariable       getEditTextLetterSpacing                            ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getEditTextLetterSpacing ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setEditTextLineSpacing                              ( const AIVariable& hComponent, const AIVariable& nSpacing ) const { S3DX_DECLARE_VIN_02( hComponent, nSpacing ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setEditTextLineSpacing ( 2, vIn, NULL ) ; }
            inline AIVariable       getEditTextLineSpacing                              ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getEditTextLineSpacing ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setEditTextAlignment                                ( const AIVariable& hComponent, const AIVariable& kHAlignment, const AIVariable& kVAlignment ) const { S3DX_DECLARE_VIN_03( hComponent, kHAlignment, kVAlignment ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setEditTextAlignment ( 3, vIn, NULL ) ; }
            inline AIVariables<2>   getEditTextAlignment                                ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getEditTextAlignment ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setEditTextCase                                     ( const AIVariable& hComponent, const AIVariable& kCase ) const { S3DX_DECLARE_VIN_02( hComponent, kCase ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setEditTextCase ( 2, vIn, NULL ) ; }
            inline AIVariable       getEditTextCase                                     ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getEditTextCase ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setEditTextEncoding                                 ( const AIVariable& hComponent, const AIVariable& kEncoding ) const { S3DX_DECLARE_VIN_02( hComponent, kEncoding ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setEditTextEncoding ( 2, vIn, NULL ) ; }
            inline AIVariable       getEditTextEncoding                                 ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getEditTextEncoding ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setEditTextDirection                                ( const AIVariable& hComponent, const AIVariable& kDirection ) const { S3DX_DECLARE_VIN_02( hComponent, kDirection ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setEditTextDirection ( 2, vIn, NULL ) ; }
            inline AIVariable       getEditTextDirection                                ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getEditTextDirection ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setEditTextDisplayRange                             ( const AIVariable& hComponent, const AIVariable& nRangeMin, const AIVariable& nRangeMax ) const { S3DX_DECLARE_VIN_03( hComponent, nRangeMin, nRangeMax ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setEditTextDisplayRange ( 3, vIn, NULL ) ; }
            inline AIVariables<2>   getEditTextDisplayRange                             ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getEditTextDisplayRange ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setEditTextMaxLength                                ( const AIVariable& hComponent, const AIVariable& nLength ) const { S3DX_DECLARE_VIN_02( hComponent, nLength ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setEditTextMaxLength ( 2, vIn, NULL ) ; }
            inline AIVariable       getEditTextMaxLength                                ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getEditTextMaxLength ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       setEditFont                                         ( const AIVariable& hComponent, const AIVariable& sFontName ) const { S3DX_DECLARE_VIN_02( hComponent, sFontName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setEditFont ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getEditFontName                                     ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getEditFontName ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setEditOnChangedAction                              ( const AIVariable& hComponent, const AIVariable& hAction ) const { S3DX_DECLARE_VIN_02( hComponent, hAction ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setEditOnChangedAction ( 2, vIn, NULL ) ; }
            inline void             setEditSecure                                       ( const AIVariable& hComponent, const AIVariable& bSecure ) const { S3DX_DECLARE_VIN_02( hComponent, bSecure ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setEditSecure ( 2, vIn, NULL ) ; }
            inline AIVariable       isEditSecure                                        ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.isEditSecure ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             enableEditTextAntialiasing                          ( const AIVariable& hComponent, const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_02( hComponent, bEnable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.enableEditTextAntialiasing ( 2, vIn, NULL ) ; }
            inline AIVariable       isEditTextAntialiasingEnabled                       ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.isEditTextAntialiasingEnabled ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getEditTextTotalLineCount                           ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getEditTextTotalLineCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setCheckText                                        ( const AIVariable& hComponent, const AIVariable& sText ) const { S3DX_DECLARE_VIN_02( hComponent, sText ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setCheckText ( 2, vIn, NULL ) ; }
            inline AIVariable       getCheckText                                        ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getCheckText ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setCheckTextHeight                                  ( const AIVariable& hComponent, const AIVariable& nTextHeight ) const { S3DX_DECLARE_VIN_02( hComponent, nTextHeight ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setCheckTextHeight ( 2, vIn, NULL ) ; }
            inline AIVariable       getCheckTextHeight                                  ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getCheckTextHeight ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setCheckTextLetterSpacing                           ( const AIVariable& hComponent, const AIVariable& nSpacing ) const { S3DX_DECLARE_VIN_02( hComponent, nSpacing ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setCheckTextLetterSpacing ( 2, vIn, NULL ) ; }
            inline AIVariable       getCheckTextLetterSpacing                           ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getCheckTextLetterSpacing ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setCheckTextLineSpacing                             ( const AIVariable& hComponent, const AIVariable& nSpacing ) const { S3DX_DECLARE_VIN_02( hComponent, nSpacing ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setCheckTextLineSpacing ( 2, vIn, NULL ) ; }
            inline AIVariable       getCheckTextLineSpacing                             ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getCheckTextLineSpacing ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setCheckTextAlignment                               ( const AIVariable& hComponent, const AIVariable& kHAlignment, const AIVariable& kVAlignment ) const { S3DX_DECLARE_VIN_03( hComponent, kHAlignment, kVAlignment ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setCheckTextAlignment ( 3, vIn, NULL ) ; }
            inline AIVariables<2>   getCheckTextAlignment                               ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getCheckTextAlignment ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setCheckTextCase                                    ( const AIVariable& hComponent, const AIVariable& kCase ) const { S3DX_DECLARE_VIN_02( hComponent, kCase ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setCheckTextCase ( 2, vIn, NULL ) ; }
            inline AIVariable       getCheckTextCase                                    ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getCheckTextCase ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setCheckTextEncoding                                ( const AIVariable& hComponent, const AIVariable& kEncoding ) const { S3DX_DECLARE_VIN_02( hComponent, kEncoding ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setCheckTextEncoding ( 2, vIn, NULL ) ; }
            inline AIVariable       getCheckTextEncoding                                ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getCheckTextEncoding ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setCheckTextDirection                               ( const AIVariable& hComponent, const AIVariable& kDirection ) const { S3DX_DECLARE_VIN_02( hComponent, kDirection ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setCheckTextDirection ( 2, vIn, NULL ) ; }
            inline AIVariable       getCheckTextDirection                               ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getCheckTextDirection ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       setCheckIcons                                       ( const AIVariable& hComponent, const AIVariable& sCheckedIconName, const AIVariable& sUncheckedIconName ) const { S3DX_DECLARE_VIN_03( hComponent, sCheckedIconName, sUncheckedIconName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setCheckIcons ( 3, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       setCheckFont                                        ( const AIVariable& hComponent, const AIVariable& sFontName ) const { S3DX_DECLARE_VIN_02( hComponent, sFontName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setCheckFont ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getCheckFontName                                    ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getCheckFontName ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setCheckOnCheckedAction                             ( const AIVariable& hComponent, const AIVariable& hAction ) const { S3DX_DECLARE_VIN_02( hComponent, hAction ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setCheckOnCheckedAction ( 2, vIn, NULL ) ; }
            inline void             setCheckOnUncheckedAction                           ( const AIVariable& hComponent, const AIVariable& hAction ) const { S3DX_DECLARE_VIN_02( hComponent, hAction ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setCheckOnUncheckedAction ( 2, vIn, NULL ) ; }
            inline AIVariable       getCheckState                                       ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getCheckState ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setCheckState                                       ( const AIVariable& hComponent, const AIVariable& bChecked ) const { S3DX_DECLARE_VIN_02( hComponent, bChecked ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setCheckState ( 2, vIn, NULL ) ; }
            inline void             enableCheckTextAntialiasing                         ( const AIVariable& hComponent, const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_02( hComponent, bEnable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.enableCheckTextAntialiasing ( 2, vIn, NULL ) ; }
            inline AIVariable       isCheckTextAntialiasingEnabled                      ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.isCheckTextAntialiasingEnabled ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getCheckTextTotalLineCount                          ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getCheckTextTotalLineCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setButtonText                                       ( const AIVariable& hComponent, const AIVariable& sText ) const { S3DX_DECLARE_VIN_02( hComponent, sText ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setButtonText ( 2, vIn, NULL ) ; }
            inline AIVariable       getButtonText                                       ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getButtonText ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setButtonTextHeight                                 ( const AIVariable& hComponent, const AIVariable& nTextHeight ) const { S3DX_DECLARE_VIN_02( hComponent, nTextHeight ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setButtonTextHeight ( 2, vIn, NULL ) ; }
            inline AIVariable       getButtonTextHeight                                 ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getButtonTextHeight ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setButtonTextLetterSpacing                          ( const AIVariable& hComponent, const AIVariable& nSpacing ) const { S3DX_DECLARE_VIN_02( hComponent, nSpacing ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setButtonTextLetterSpacing ( 2, vIn, NULL ) ; }
            inline AIVariable       getButtonTextLetterSpacing                          ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getButtonTextLetterSpacing ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setButtonTextLineSpacing                            ( const AIVariable& hComponent, const AIVariable& nSpacing ) const { S3DX_DECLARE_VIN_02( hComponent, nSpacing ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setButtonTextLineSpacing ( 2, vIn, NULL ) ; }
            inline AIVariable       getButtonTextLineSpacing                            ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getButtonTextLineSpacing ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setButtonTextAlignment                              ( const AIVariable& hComponent, const AIVariable& kHAlignment, const AIVariable& kVAlignment ) const { S3DX_DECLARE_VIN_03( hComponent, kHAlignment, kVAlignment ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setButtonTextAlignment ( 3, vIn, NULL ) ; }
            inline AIVariables<2>   getButtonTextAlignment                              ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getButtonTextAlignment ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setButtonTextCase                                   ( const AIVariable& hComponent, const AIVariable& kCase ) const { S3DX_DECLARE_VIN_02( hComponent, kCase ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setButtonTextCase ( 2, vIn, NULL ) ; }
            inline AIVariable       getButtonTextCase                                   ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getButtonTextCase ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setButtonTextEncoding                               ( const AIVariable& hComponent, const AIVariable& kEncoding ) const { S3DX_DECLARE_VIN_02( hComponent, kEncoding ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setButtonTextEncoding ( 2, vIn, NULL ) ; }
            inline AIVariable       getButtonTextEncoding                               ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getButtonTextEncoding ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setButtonTextDirection                              ( const AIVariable& hComponent, const AIVariable& kDirection ) const { S3DX_DECLARE_VIN_02( hComponent, kDirection ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setButtonTextDirection ( 2, vIn, NULL ) ; }
            inline AIVariable       getButtonTextDirection                              ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getButtonTextDirection ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       setButtonFont                                       ( const AIVariable& hComponent, const AIVariable& sFontName ) const { S3DX_DECLARE_VIN_02( hComponent, sFontName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setButtonFont ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getButtonFontName                                   ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getButtonFontName ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setButtonOnClickAction                              ( const AIVariable& hComponent, const AIVariable& hAction ) const { S3DX_DECLARE_VIN_02( hComponent, hAction ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setButtonOnClickAction ( 2, vIn, NULL ) ; }
            inline void             setButtonOnClickedAction                            ( const AIVariable& hComponent, const AIVariable& hAction ) const { S3DX_DECLARE_VIN_02( hComponent, hAction ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setButtonOnClickedAction ( 2, vIn, NULL ) ; }
            inline void             enableButtonTextAntialiasing                        ( const AIVariable& hComponent, const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_02( hComponent, bEnable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.enableButtonTextAntialiasing ( 2, vIn, NULL ) ; }
            inline AIVariable       isButtonTextAntialiasingEnabled                     ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.isButtonTextAntialiasingEnabled ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getButtonTextTotalLineCount                         ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getButtonTextTotalLineCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       setMovieClip                                        ( const AIVariable& hComponent, const AIVariable& sMovieName ) const { S3DX_DECLARE_VIN_02( hComponent, sMovieName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setMovieClip ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       setMovieExternalClip                                ( const AIVariable& hComponent, const AIVariable& sMoviePath ) const { S3DX_DECLARE_VIN_02( hComponent, sMoviePath ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setMovieExternalClip ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getMovieBufferingProgress                           ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getMovieBufferingProgress ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getMoviePlaybackProgress                            ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getMoviePlaybackProgress ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getMoviePlaybackCursor                              ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getMoviePlaybackCursor ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setMovieTransparentColor                            ( const AIVariable& hComponent, const AIVariable& nRed, const AIVariable& nGreen, const AIVariable& nBlue, const AIVariable& nTolerance ) const { S3DX_DECLARE_VIN_05( hComponent, nRed, nGreen, nBlue, nTolerance ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setMovieTransparentColor ( 5, vIn, NULL ) ; }
            inline void             playMovie                                           ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.playMovie ( 1, vIn, NULL ) ; }
            inline void             pauseMovie                                          ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.pauseMovie ( 1, vIn, NULL ) ; }
            inline void             stopMovie                                           ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.stopMovie ( 1, vIn, NULL ) ; }
            inline AIVariable       setRenderMap                                        ( const AIVariable& hComponent, const AIVariable& sRenderMap ) const { S3DX_DECLARE_VIN_02( hComponent, sRenderMap ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setRenderMap ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getRenderMapName                                    ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getRenderMapName ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       setPixelMap                                         ( const AIVariable& hComponent, const AIVariable& sPixelMap ) const { S3DX_DECLARE_VIN_02( hComponent, sPixelMap ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setPixelMap ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getPixelMapName                                     ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getPixelMapName ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getPixelMap                                         ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getPixelMap ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setProgressValue                                    ( const AIVariable& hComponent, const AIVariable& nValue ) const { S3DX_DECLARE_VIN_02( hComponent, nValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setProgressValue( 2, vIn, NULL ) ; }
            inline AIVariable       getProgressValue                                    ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getProgressValue ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setProgressType                                     ( const AIVariable& hComponent, const AIVariable& kType ) const { S3DX_DECLARE_VIN_02( hComponent, kType ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setProgressType ( 2, vIn, NULL ) ; }
            inline AIVariable       getProgressType                                     ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getProgressType ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getListItemCount                                    ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getListItemCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       addListItem                                         ( const AIVariable& hComponent, const AIVariable& sText ) const { S3DX_DECLARE_VIN_02( hComponent, sText ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.addListItem ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             removeListItemAt                                    ( const AIVariable& hComponent, const AIVariable& nItem ) const { S3DX_DECLARE_VIN_02( hComponent, nItem ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.removeListItemAt ( 2, vIn, NULL ) ; }
            inline void             selectListItemAt                                    ( const AIVariable& hComponent, const AIVariable& nItem, const AIVariable& bSelect ) const { S3DX_DECLARE_VIN_03( hComponent, nItem, bSelect ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.selectListItemAt ( 3, vIn, NULL ) ; }
            inline void             removeListAllItems                                  ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.removeListAllItems ( 1, vIn, NULL ) ; }
            inline void             selectListAllItems                                  ( const AIVariable& hComponent, const AIVariable& bSelect ) const { S3DX_DECLARE_VIN_02( hComponent, bSelect ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.selectListAllItems ( 2, vIn, NULL ) ; }
            inline AIVariable       getListItemTextAt                                   ( const AIVariable& hComponent, const AIVariable& nItem, const AIVariable& nColumn ) const { S3DX_DECLARE_VIN_03( hComponent, nItem, nColumn ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getListItemTextAt ( 3, vIn, &vOut ) ; return vOut ; }
            inline void             setListItemTextAt                                   ( const AIVariable& hComponent, const AIVariable& nItem, const AIVariable& nColumn, const AIVariable& sText ) const { S3DX_DECLARE_VIN_04( hComponent, nItem, nColumn, sText ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListItemTextAt ( 4, vIn, NULL ) ; }
            inline AIVariable       setListItemIconAt                                   ( const AIVariable& hComponent, const AIVariable& nItem, const AIVariable& nColumn, const AIVariable& sIcon ) const { S3DX_DECLARE_VIN_04( hComponent, nItem, nColumn, sIcon ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListItemIconAt ( 4, vIn, &vOut ) ; return vOut ; }
            inline void             setListItemsHeight                                  ( const AIVariable& hComponent, const AIVariable& nHeight ) const { S3DX_DECLARE_VIN_02( hComponent, nHeight ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListItemsHeight ( 2, vIn, NULL ) ; }
            inline AIVariable       getListItemsHeight                                  ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getListItemsHeight ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       setListItemsBackgroundImage                         ( const AIVariable& hComponent, const AIVariable& sImage ) const { S3DX_DECLARE_VIN_02( hComponent, sImage ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListItemsBackgroundImage ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getListItemsBackgroundImageName                     ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getListItemsBackgroundImageName ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setListItemsBackgroundColor                         ( const AIVariable& hComponent, const AIVariable& nRed, const AIVariable& nGreen, const AIVariable& nBlue, const AIVariable& nAlpha ) const { S3DX_DECLARE_VIN_05( hComponent, nRed, nGreen, nBlue, nAlpha ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListItemsBackgroundColor ( 5, vIn, NULL ) ; }
            inline void             setListItemsBackgroundColorOdd                      ( const AIVariable& hComponent, const AIVariable& nRed, const AIVariable& nGreen, const AIVariable& nBlue, const AIVariable& nAlpha ) const { S3DX_DECLARE_VIN_05( hComponent, nRed, nGreen, nBlue, nAlpha ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListItemsBackgroundColorOdd ( 5, vIn, NULL ) ; }
            inline AIVariables<4>   getListItemsBackgroundColorOdd                      ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariables<4> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getListItemsBackgroundColorOdd ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setListItemsBackgroundColorEven                     ( const AIVariable& hComponent, const AIVariable& nRed, const AIVariable& nGreen, const AIVariable& nBlue, const AIVariable& nAlpha ) const { S3DX_DECLARE_VIN_05( hComponent, nRed, nGreen, nBlue, nAlpha ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListItemsBackgroundColorEven ( 5, vIn, NULL ) ; }
            inline AIVariables<4>   getListItemsBackgroundColorEven                     ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariables<4> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getListItemsBackgroundColorEven ( 1, vIn, vOut ) ; return vOut ; }
            inline AIVariable       setListItemsBackgroundImageSelected                 ( const AIVariable& hComponent, const AIVariable& sImage ) const { S3DX_DECLARE_VIN_02( hComponent, sImage ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListItemsBackgroundImageSelected ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getListItemsBackgroundImageSelectedName             ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getListItemsBackgroundImageSelectedName ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setListItemsBackgroundColorSelected                 ( const AIVariable& hComponent, const AIVariable& nRed, const AIVariable& nGreen, const AIVariable& nBlue, const AIVariable& nAlpha ) const { S3DX_DECLARE_VIN_05( hComponent, nRed, nGreen, nBlue, nAlpha ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListItemsBackgroundColorSelected ( 5, vIn, NULL ) ; }
            inline AIVariables<4>   getListItemsBackgroundColorSelected                 ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariables<4> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getListItemsBackgroundColorSelected ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setListItemsForegroundColorSelected                 ( const AIVariable& hComponent, const AIVariable& nRed, const AIVariable& nGreen, const AIVariable& nBlue, const AIVariable& nAlpha ) const { S3DX_DECLARE_VIN_05( hComponent, nRed, nGreen, nBlue, nAlpha ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListItemsForegroundColorSelected ( 5, vIn, NULL ) ; }
            inline AIVariables<4>   getListItemsForegroundColorSelected                 ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariables<4> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getListItemsForegroundColorSelected ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setListTextLeftMargin                               ( const AIVariable& hComponent, const AIVariable& nMargin ) const { S3DX_DECLARE_VIN_02( hComponent, nMargin ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListTextLeftMargin ( 2, vIn, NULL ) ; }
            inline AIVariable       getListTextLeftMargin                               ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getListTextLeftMargin ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setListTextRightMargin                              ( const AIVariable& hComponent, const AIVariable& nMargin ) const { S3DX_DECLARE_VIN_02( hComponent, nMargin ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListTextRightMargin ( 2, vIn, NULL ) ; }
            inline AIVariable       getListTextRightMargin                              ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getListTextRightMargin ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setListTextHeight                                   ( const AIVariable& hComponent, const AIVariable& nHeight ) const { S3DX_DECLARE_VIN_02( hComponent, nHeight ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListTextHeight ( 2, vIn, NULL ) ; }
            inline AIVariable       getListTextHeight                                   ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getListTextHeight ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setListTextLetterSpacing                            ( const AIVariable& hComponent, const AIVariable& nSpacing ) const { S3DX_DECLARE_VIN_02( hComponent, nSpacing ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListTextLetterSpacing ( 2, vIn, NULL ) ; }
            inline AIVariable       getListTextLetterSpacing                            ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getListTextLetterSpacing ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setListTextLineSpacing                              ( const AIVariable& hComponent, const AIVariable& nSpacing ) const { S3DX_DECLARE_VIN_02( hComponent, nSpacing ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListTextLineSpacing ( 2, vIn, NULL ) ; }
            inline AIVariable       getListTextLineSpacing                              ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getListTextLineSpacing ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       setListTextFont                                     ( const AIVariable& hComponent, const AIVariable& sFont ) const { S3DX_DECLARE_VIN_02( hComponent, sFont ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListTextFont ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getListTextFontName                                 ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getListTextFontName ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setListTextCase                                     ( const AIVariable& hComponent, const AIVariable& kCase ) const { S3DX_DECLARE_VIN_02( hComponent, kCase ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListTextCase ( 2, vIn, NULL ) ; }
            inline AIVariable       getListTextCase                                     ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getListTextCase ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setListTextEncoding                                 ( const AIVariable& hComponent, const AIVariable& kEncoding ) const { S3DX_DECLARE_VIN_02( hComponent, kEncoding ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListTextEncoding ( 2, vIn, NULL ) ; }
            inline AIVariable       getListTextEncoding                                 ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getListTextEncoding ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setListTextDirection                                ( const AIVariable& hComponent, const AIVariable& kDirection ) const { S3DX_DECLARE_VIN_02( hComponent, kDirection ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListTextDirection ( 2, vIn, NULL ) ; }
            inline AIVariable       getListTextDirection                                ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getListTextDirection ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             enableListTextAntialiasing                          ( const AIVariable& hComponent, const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_02( hComponent, bEnable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.enableListTextAntialiasing ( 2, vIn, NULL ) ; }
            inline AIVariable       isListTextAntialiasingEnabled                       ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.isListTextAntialiasingEnabled ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getListColumnCount                                  ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getListColumnCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       addListColumn                                       ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.addListColumn ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setListColumnTextAlignmentAt                        ( const AIVariable& hComponent, const AIVariable& nColumn, const AIVariable& kHAlignment, const AIVariable& kVAlignment ) const { S3DX_DECLARE_VIN_04( hComponent, nColumn, kHAlignment, kVAlignment ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListColumnTextAlignmentAt ( 4, vIn, NULL ) ; }
            inline void             setListColumnWidthAt                                ( const AIVariable& hComponent, const AIVariable& nColumn, const AIVariable& nWidth ) const { S3DX_DECLARE_VIN_03( hComponent, nColumn, nWidth ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListColumnWidthAt ( 3, vIn, NULL ) ; }
            inline void             enableListSelection                                 ( const AIVariable& hComponent, const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_02( hComponent, bEnable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.enableListSelection ( 2, vIn, NULL ) ; }
            inline void             enableListSingleSelection                           ( const AIVariable& hComponent, const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_02( hComponent, bEnable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.enableListSingleSelection ( 2, vIn, NULL ) ; }
            inline void             enableListSingleSelectionToggling                   ( const AIVariable& hComponent, const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_02( hComponent, bEnable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.enableListSingleSelectionToggling ( 2, vIn, NULL ) ; }
            inline void             enableListSmoothScrolling                           ( const AIVariable& hComponent, const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_02( hComponent, bEnable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.enableListSmoothScrolling ( 2, vIn, NULL ) ; }
            inline void             enableListFingerScrolling                           ( const AIVariable& hComponent, const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_02( hComponent, bEnable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.enableListFingerScrolling ( 2, vIn, NULL ) ; }
            inline void             enableListMouseWheelHandling                        ( const AIVariable& hComponent, const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_02( hComponent, bEnable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.enableListMouseWheelHandling ( 2, vIn, NULL ) ; }
            inline AIVariable       getListSelectedItemCount                            ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getListSelectedItemCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getListSelectedItemAt                               ( const AIVariable& hComponent, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hComponent, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getListSelectedItemAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             setListVerticalScrollPos                            ( const AIVariable& hComponent, const AIVariable& nValue ) const { S3DX_DECLARE_VIN_02( hComponent, nValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListVerticalScrollPos ( 2, vIn, NULL ) ; }
            inline AIVariable       getListVerticalScrollPos                            ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getListVerticalScrollPos ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setListVerticalScrollBarWidth                       ( const AIVariable& hComponent, const AIVariable& nWidth ) const { S3DX_DECLARE_VIN_02( hComponent, nWidth ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListVerticalScrollBarWidth ( 2, vIn, NULL ) ; }
            inline void             setListVerticalScrollBarArrowHeight                 ( const AIVariable& hComponent, const AIVariable& nHeight ) const { S3DX_DECLARE_VIN_02( hComponent, nHeight ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListVerticalScrollBarArrowHeight ( 2, vIn, NULL ) ; }
            inline void             setListScrollBarBackgroundColor                     ( const AIVariable& hComponent, const AIVariable& nRed, const AIVariable& nGreen, const AIVariable& nBlue, const AIVariable& nAlpha ) const { S3DX_DECLARE_VIN_05( hComponent, nRed, nGreen, nBlue, nAlpha ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListScrollBarBackgroundColor ( 5, vIn, NULL ) ; }
            inline void             setListScrollBarForegroundColor                     ( const AIVariable& hComponent, const AIVariable& nRed, const AIVariable& nGreen, const AIVariable& nBlue, const AIVariable& nAlpha ) const { S3DX_DECLARE_VIN_05( hComponent, nRed, nGreen, nBlue, nAlpha ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListScrollBarForegroundColor ( 5, vIn, NULL ) ; }
            inline void             setListScrollBarArrowColor                          ( const AIVariable& hComponent, const AIVariable& nRed, const AIVariable& nGreen, const AIVariable& nBlue, const AIVariable& nAlpha ) const { S3DX_DECLARE_VIN_05( hComponent, nRed, nGreen, nBlue, nAlpha ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListScrollBarArrowColor ( 5, vIn, NULL ) ; }
            inline AIVariable       setListScrollBarBackgroundImages                    ( const AIVariable& hComponent, const AIVariable& sTop, const AIVariable& sMiddle, const AIVariable& sBottom ) const { S3DX_DECLARE_VIN_04( hComponent, sTop, sMiddle, sBottom ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListScrollBarBackgroundImages ( 4, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       setListScrollBarForegroundImages                    ( const AIVariable& hComponent, const AIVariable& sTop, const AIVariable& sMiddle, const AIVariable& sBottom ) const { S3DX_DECLARE_VIN_04( hComponent, sTop, sMiddle, sBottom ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListScrollBarForegroundImages ( 4, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       setListScrollBarArrowImages                         ( const AIVariable& hComponent, const AIVariable& sTop, const AIVariable& sBottom ) const { S3DX_DECLARE_VIN_03( hComponent, sTop, sBottom ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListScrollBarArrowImages ( 3, vIn, &vOut ) ; return vOut ; }
            inline void             setListOnSelectionChangedAction                     ( const AIVariable& hComponent, const AIVariable& hAction ) const { S3DX_DECLARE_VIN_02( hComponent, hAction ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setListOnSelectionChangedAction ( 2, vIn, NULL ) ; }
            inline void             setSliderType                                       ( const AIVariable& hComponent, const AIVariable& kType ) const { S3DX_DECLARE_VIN_02( hComponent, kType ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setSliderType ( 2, vIn, NULL ) ; }
            inline AIVariable       getSliderType                                       ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getSliderType ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setSliderRange                                      ( const AIVariable& hComponent, const AIVariable& nRangeMin, const AIVariable& nRangeMax ) const { S3DX_DECLARE_VIN_03( hComponent, nRangeMin, nRangeMax ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setSliderRange ( 3, vIn, NULL ) ; }
            inline AIVariables<2>   getSliderRange                                      ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getSliderRange ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setSliderValue                                      ( const AIVariable& hComponent, const AIVariable& nValue ) const { S3DX_DECLARE_VIN_02( hComponent, nValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setSliderValue ( 2, vIn, NULL ) ; }
            inline AIVariable       getSliderValue                                      ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getSliderValue ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       setSliderThumbImage                                 ( const AIVariable& hComponent, const AIVariable& sImageName ) const { S3DX_DECLARE_VIN_02( hComponent, sImageName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setSliderThumbImage ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             setSliderOnChangedAction                            ( const AIVariable& hComponent, const AIVariable& hAction ) const { S3DX_DECLARE_VIN_02( hComponent, hAction ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setSliderOnChangedAction ( 2, vIn, NULL ) ; }
            inline void             beginActionCommand                                  ( const AIVariable& hAction, const AIVariable& kCommandType ) const { S3DX_DECLARE_VIN_02( hAction, kCommandType ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.beginActionCommand ( 2, vIn, NULL ) ; }
            inline void             pushActionCommandArgument                           ( const AIVariable& hAction, const AIVariable& vArgument ) const { S3DX_DECLARE_VIN_02( hAction, vArgument ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.pushActionCommandArgument ( 2, vIn, NULL ) ; }
            inline void             pushActionCommandRuntimeArgument                    ( const AIVariable& hAction, const AIVariable& kRuntimeArgument ) const { S3DX_DECLARE_VIN_02( hAction, kRuntimeArgument ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.pushActionCommandRuntimeArgument ( 2, vIn, NULL ) ; }
            inline void             endActionCommand                                    ( const AIVariable& hAction ) const { S3DX_DECLARE_VIN_01( hAction ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.endActionCommand ( 1, vIn, NULL ) ; }
            inline void             setTimerOnTickAction                                ( const AIVariable& hTimer, const AIVariable& hAction ) const { S3DX_DECLARE_VIN_02( hTimer, hAction ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setTimerOnTickAction ( 2, vIn, NULL ) ; }
            inline void             setTimerTickTime                                    ( const AIVariable& hTimer, const AIVariable& nTime ) const { S3DX_DECLARE_VIN_02( hTimer, nTime ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.setTimerTickTime ( 2, vIn, NULL ) ; }
            inline void             startTimer                                          ( const AIVariable& hTimer ) const { S3DX_DECLARE_VIN_01( hTimer ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.startTimer ( 1, vIn, NULL ) ; }
            inline void             stopTimer                                           ( const AIVariable& hTimer ) const { S3DX_DECLARE_VIN_01( hTimer ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.stopTimer ( 1, vIn, NULL ) ; }
            inline AIVariable       callAction                                          ( const AIVariable& hUser, const AIVariable& sActionTag ) const { S3DX_DECLARE_VIN_02( hUser, sActionTag ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.callAction ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       callAction                                          ( const AIVariable& hUser, const AIVariable& sActionTag, const AIVariable& vParam0 ) const { S3DX_DECLARE_VIN_03( hUser, sActionTag, vParam0 ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.callAction ( 3, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       callAction                                          ( const AIVariable& hUser, const AIVariable& sActionTag, const AIVariable& vParam0, const AIVariable& vParam1 ) const { S3DX_DECLARE_VIN_04( hUser, sActionTag, vParam0, vParam1 ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.callAction ( 4, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       callAction                                          ( const AIVariable& hUser, const AIVariable& sActionTag, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2 ) const { S3DX_DECLARE_VIN_05( hUser, sActionTag, vParam0, vParam1, vParam2 ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.callAction ( 5, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       callAction                                          ( const AIVariable& hUser, const AIVariable& sActionTag, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3 ) const { S3DX_DECLARE_VIN_06( hUser, sActionTag, vParam0, vParam1, vParam2, vParam3 ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.callAction ( 6, vIn, &vOut ) ; return vOut ; }
            inline void             stopAction                                          ( const AIVariable& hUser, const AIVariable& sActionTag ) const { S3DX_DECLARE_VIN_02( hUser, sActionTag ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.stopAction ( 2, vIn, NULL ) ; }
            inline void             pauseAction                                         ( const AIVariable& hUser, const AIVariable& sActionTag ) const { S3DX_DECLARE_VIN_02( hUser, sActionTag ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.pauseAction ( 2, vIn, NULL ) ; }
            inline void             resumeAction                                        ( const AIVariable& hUser, const AIVariable& sActionTag ) const { S3DX_DECLARE_VIN_02( hUser, sActionTag ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.resumeAction ( 2, vIn, NULL ) ; }
            inline void             stopAllActions                                      ( const AIVariable& hUser ) const { S3DX_DECLARE_VIN_01( hUser ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.stopAllActions ( 1, vIn, NULL ) ; }
            inline void             pauseAllActions                                     ( const AIVariable& hUser ) const { S3DX_DECLARE_VIN_01( hUser ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.pauseAllActions ( 1, vIn, NULL ) ; }
            inline void             resumeAllActions                                    ( const AIVariable& hUser ) const { S3DX_DECLARE_VIN_01( hUser ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.resumeAllActions ( 1, vIn, NULL ) ; }
            inline AIVariable       isActionRunning                                     ( const AIVariable& hUser, const AIVariable& sActionTag ) const { S3DX_DECLARE_VIN_02( hUser, sActionTag ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.isActionRunning ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       isActionPaused                                      ( const AIVariable& hUser, const AIVariable& sActionTag ) const { S3DX_DECLARE_VIN_02( hUser, sActionTag ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.isActionPaused ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getUnderCursorComponent                             ( const AIVariable& hUser ) const { S3DX_DECLARE_VIN_01( hUser ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getUnderCursorComponent ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getUnderCursorListItem                              ( const AIVariable& hUser ) const { S3DX_DECLARE_VIN_01( hUser ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getUnderCursorListItem ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getFocusedComponent                                 ( const AIVariable& hUser ) const { S3DX_DECLARE_VIN_01( hUser ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getFocusedComponent ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       enterModalMode                                      ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.enterModalMode ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             leaveModalMode                                      ( const AIVariable& hComponent ) const { S3DX_DECLARE_VIN_01( hComponent ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.leaveModalMode ( 1, vIn, NULL ) ; }
            inline AIVariable       getComponentAtPoint                                 ( const AIVariable& hUser, const AIVariable& nPointX, const AIVariable& nPointY ) const { S3DX_DECLARE_VIN_03( hUser, nPointX, nPointY ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->hud.getComponentAtPoint ( 3, vIn, &vOut ) ; return vOut ; }
        } ;

        struct InputPackage
        {
            // Constants
            //
            const AIVariable        kJoypadTypeNone             ;
            const AIVariable        kJoypadTypeStandard         ;
            const AIVariable        kJoypadTypeWiimote          ;
            const AIVariable        kJoypadTypePhone            ;
            const AIVariable        kJoypadTypePSP              ;
            const AIVariable        kJoypadTypePS3              ; // 1.9.0.1
            const AIVariable        kJoypadButtonWiimoteA       ;
            const AIVariable        kJoypadButtonWiimoteB       ;
            const AIVariable        kJoypadButtonWiimoteOne     ;
            const AIVariable        kJoypadButtonWiimoteTwo     ;
            const AIVariable        kJoypadButtonWiimoteMinus   ;
            const AIVariable        kJoypadButtonWiimoteHome    ;
            const AIVariable        kJoypadButtonWiimotePlus    ;
            const AIVariable        kJoypadButtonWiimoteUp      ;
            const AIVariable        kJoypadButtonWiimoteDown    ;
            const AIVariable        kJoypadButtonWiimoteLeft    ;
            const AIVariable        kJoypadButtonWiimoteRight   ;
            const AIVariable        kJoypadButtonWiimoteZ       ;
            const AIVariable        kJoypadButtonWiimoteC       ;
            const AIVariable        kJoypadButtonPSPCross       ;
            const AIVariable        kJoypadButtonPSPCircle      ;
            const AIVariable        kJoypadButtonPSPTriangle    ;
            const AIVariable        kJoypadButtonPSPSquare      ;
            const AIVariable        kJoypadButtonPSPL           ;
            const AIVariable        kJoypadButtonPSPR           ;
            const AIVariable        kJoypadButtonPSPUp          ;
            const AIVariable        kJoypadButtonPSPDown        ;
            const AIVariable        kJoypadButtonPSPLeft        ;
            const AIVariable        kJoypadButtonPSPRight       ;
            const AIVariable        kJoypadButtonPSPSelect      ;
            const AIVariable        kJoypadButtonPSPStart       ;
            const AIVariable        kJoypadButtonPS3Cross       ; // 1.9.0.1
            const AIVariable        kJoypadButtonPS3Circle      ; // 1.9.0.1
            const AIVariable        kJoypadButtonPS3Triangle    ; // 1.9.0.1
            const AIVariable        kJoypadButtonPS3Square      ; // 1.9.0.1
            const AIVariable        kJoypadButtonPS3L1          ; // 1.9.0.1
            const AIVariable        kJoypadButtonPS3R1          ; // 1.9.0.1
            const AIVariable        kJoypadButtonPS3Up          ; // 1.9.0.1
            const AIVariable        kJoypadButtonPS3Down        ; // 1.9.0.1
            const AIVariable        kJoypadButtonPS3Left        ; // 1.9.0.1
            const AIVariable        kJoypadButtonPS3Right       ; // 1.9.0.1
            const AIVariable        kJoypadButtonPS3Select      ; // 1.9.0.1
            const AIVariable        kJoypadButtonPS3Start       ; // 1.9.0.1
            const AIVariable        kJoypadButtonPS3L2          ; // 1.9.0.1
            const AIVariable        kJoypadButtonPS3R2          ; // 1.9.0.1
            const AIVariable        kJoypadButtonPS3L3          ; // 1.9.0.1
            const AIVariable        kJoypadButtonPS3R3          ; // 1.9.0.1
            const AIVariable        kKeyUp                      ;
            const AIVariable        kKeyDown                    ;
            const AIVariable        kKeyRight                   ;
            const AIVariable        kKeyLeft                    ;
            const AIVariable        kKeySpace                   ;
            const AIVariable        kKeyReturn                  ;
            const AIVariable        kKeyEscape                  ;
            const AIVariable        kKeyTab                     ;
            const AIVariable        kKeyLControl                ;
            const AIVariable        kKeyRControl                ;
            const AIVariable        kKeyLShift                  ;
            const AIVariable        kKeyRShift                  ;
            const AIVariable        kKeyLAlt                    ;
            const AIVariable        kKeyRAlt                    ;
            const AIVariable        kKeyPageUp                  ;
            const AIVariable        kKeyPageDown                ;
            const AIVariable        kKeyHome                    ;
            const AIVariable        kKeyEnd                     ;
            const AIVariable        kKeyInsert                  ;
            const AIVariable        kKeyDelete                  ;
            const AIVariable        kKeyBackspace               ;
            const AIVariable        kKeyA                       ;
            const AIVariable        kKeyB                       ;
            const AIVariable        kKeyC                       ;
            const AIVariable        kKeyD                       ;
            const AIVariable        kKeyE                       ;
            const AIVariable        kKeyF                       ;
            const AIVariable        kKeyG                       ;
            const AIVariable        kKeyH                       ;
            const AIVariable        kKeyI                       ;
            const AIVariable        kKeyJ                       ;
            const AIVariable        kKeyK                       ;
            const AIVariable        kKeyL                       ;
            const AIVariable        kKeyM                       ;
            const AIVariable        kKeyN                       ;
            const AIVariable        kKeyO                       ;
            const AIVariable        kKeyP                       ;
            const AIVariable        kKeyQ                       ;
            const AIVariable        kKeyR                       ;
            const AIVariable        kKeyS                       ;
            const AIVariable        kKeyT                       ;
            const AIVariable        kKeyU                       ;
            const AIVariable        kKeyV                       ;
            const AIVariable        kKeyW                       ;
            const AIVariable        kKeyX                       ;
            const AIVariable        kKeyY                       ;
            const AIVariable        kKeyZ                       ;
            const AIVariable        kKeyF1                      ;
            const AIVariable        kKeyF2                      ;
            const AIVariable        kKeyF3                      ;
            const AIVariable        kKeyF4                      ;
            const AIVariable        kKeyF5                      ;
            const AIVariable        kKeyF6                      ;
            const AIVariable        kKeyF7                      ;
            const AIVariable        kKeyF8                      ;
            const AIVariable        kKeyF9                      ;
            const AIVariable        kKeyF10                     ;
            const AIVariable        kKeyF11                     ;
            const AIVariable        kKeyF12                     ;
            const AIVariable        kKey0                       ;
            const AIVariable        kKey1                       ;
            const AIVariable        kKey2                       ;
            const AIVariable        kKey3                       ;
            const AIVariable        kKey4                       ;
            const AIVariable        kKey5                       ;
            const AIVariable        kKey6                       ;
            const AIVariable        kKey7                       ;
            const AIVariable        kKey8                       ;
            const AIVariable        kKey9                       ;
            const AIVariable        kKeyMenu                    ; // 1.9.0.2
            const AIVariable        kJoypadTypeXbox360          ; // 1.9.0.6

            InputPackage                (    ):
            kJoypadTypeNone             (  0 ),
            kJoypadTypeStandard         (  1 ),
            kJoypadTypeWiimote          (  2 ),
            kJoypadTypePhone            (  3 ),
            kJoypadTypePSP              (  4 ),
            kJoypadTypePS3              (  5 ), // 1.9.0.1
            kJoypadButtonWiimoteA       (  0 ),
            kJoypadButtonWiimoteB       (  1 ),
            kJoypadButtonWiimoteOne     (  2 ),
            kJoypadButtonWiimoteTwo     (  3 ),
            kJoypadButtonWiimoteMinus   (  4 ),
            kJoypadButtonWiimoteHome    (  5 ),
            kJoypadButtonWiimotePlus    (  6 ),
            kJoypadButtonWiimoteUp      (  7 ),
            kJoypadButtonWiimoteDown    (  8 ),
            kJoypadButtonWiimoteLeft    (  9 ),
            kJoypadButtonWiimoteRight   ( 10 ),
            kJoypadButtonWiimoteZ       ( 11 ),
            kJoypadButtonWiimoteC       ( 12 ),
            kJoypadButtonPSPCross       (  0 ),
            kJoypadButtonPSPCircle      (  1 ),
            kJoypadButtonPSPTriangle    (  2 ),
            kJoypadButtonPSPSquare      (  3 ),
            kJoypadButtonPSPL           (  4 ),
            kJoypadButtonPSPR           (  6 ),
            kJoypadButtonPSPUp          (  7 ),
            kJoypadButtonPSPDown        (  8 ),
            kJoypadButtonPSPLeft        (  9 ),
            kJoypadButtonPSPRight       ( 10 ),
            kJoypadButtonPSPSelect      ( 11 ),
            kJoypadButtonPSPStart       ( 12 ),
            kJoypadButtonPS3Cross       (  0 ), // 1.9.0.1
            kJoypadButtonPS3Circle      (  1 ), // 1.9.0.1
            kJoypadButtonPS3Triangle    (  2 ), // 1.9.0.1
            kJoypadButtonPS3Square      (  3 ), // 1.9.0.1
            kJoypadButtonPS3L1          (  4 ), // 1.9.0.1
            kJoypadButtonPS3R1          (  6 ), // 1.9.0.1
            kJoypadButtonPS3Up          (  7 ), // 1.9.0.1
            kJoypadButtonPS3Down        (  8 ), // 1.9.0.1
            kJoypadButtonPS3Left        (  9 ), // 1.9.0.1
            kJoypadButtonPS3Right       ( 10 ), // 1.9.0.1
            kJoypadButtonPS3Select      ( 11 ), // 1.9.0.1
            kJoypadButtonPS3Start       ( 12 ), // 1.9.0.1
            kJoypadButtonPS3L2          ( 13 ), // 1.9.0.1
            kJoypadButtonPS3R2          ( 14 ), // 1.9.0.1
            kJoypadButtonPS3L3          ( 15 ), // 1.9.0.1
            kJoypadButtonPS3R3          ( 16 ), // 1.9.0.1
            kKeyUp                      ( 30 ),
            kKeyDown                    ( 31 ),
            kKeyRight                   ( 32 ),
            kKeyLeft                    ( 33 ),
            kKeySpace                   ( 36 ),
            kKeyReturn                  ( 35 ),
            kKeyEscape                  ( 34 ),
            kKeyTab                     ( 43 ),
            kKeyLControl                ( 26 ),
            kKeyRControl                ( 27 ),
            kKeyLShift                  ( 28 ),
            kKeyRShift                  ( 29 ),
            kKeyLAlt                    ( 112 ),
            kKeyRAlt                    ( 113 ),
            kKeyPageUp                  ( 37 ),
            kKeyPageDown                ( 38 ),
            kKeyHome                    ( 39 ),
            kKeyEnd                     ( 40 ),
            kKeyInsert                  ( 41 ),
            kKeyDelete                  ( 42 ),
            kKeyBackspace               ( 76 ),
            kKeyA                       (  0 ),
            kKeyB                       (  1 ),
            kKeyC                       (  2 ),
            kKeyD                       (  3 ),
            kKeyE                       (  4 ),
            kKeyF                       (  5 ),
            kKeyG                       (  6 ),
            kKeyH                       (  7 ),
            kKeyI                       (  8 ),
            kKeyJ                       (  9 ),
            kKeyK                       ( 10 ),
            kKeyL                       ( 11 ),
            kKeyM                       ( 12 ),
            kKeyN                       ( 13 ),
            kKeyO                       ( 14 ),
            kKeyP                       ( 15 ),
            kKeyQ                       ( 16 ),
            kKeyR                       ( 17 ),
            kKeyS                       ( 18 ),
            kKeyT                       ( 19 ),
            kKeyU                       ( 20 ),
            kKeyV                       ( 21 ),
            kKeyW                       ( 22 ),
            kKeyX                       ( 23 ),
            kKeyY                       ( 24 ),
            kKeyZ                       ( 25 ),
            kKeyF1                      ( 44 ),
            kKeyF2                      ( 45 ),
            kKeyF3                      ( 46 ),
            kKeyF4                      ( 47 ),
            kKeyF5                      ( 48 ),
            kKeyF6                      ( 49 ),
            kKeyF7                      ( 50 ),
            kKeyF8                      ( 51 ),
            kKeyF9                      ( 52 ),
            kKeyF10                     ( 53 ),
            kKeyF11                     ( 54 ),
            kKeyF12                     ( 55 ),
            kKey0                       ( 56 ),
            kKey1                       ( 57 ),
            kKey2                       ( 58 ),
            kKey3                       ( 59 ),
            kKey4                       ( 60 ),
            kKey5                       ( 61 ),
            kKey6                       ( 62 ),
            kKey7                       ( 63 ),
            kKey8                       ( 64 ),
            kKey9                       ( 65 ),
            kKeyMenu                    ( 115 ), // 1.9.0.2
            kJoypadTypeXbox360          (  6 )   // 1.9.0.6
            { }

            // Functions
            //
            inline void             setJoypadVibrationsMagnitude                        ( const AIVariable& hUser, const AIVariable& nJoypad, const AIVariable& nMagnitude ) const { S3DX_DECLARE_VIN_03( hUser, nJoypad, nMagnitude ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->input.setJoypadVibrationsMagnitude ( 3, vIn, NULL ) ; }
            inline AIVariable       getJoypadType                                       ( const AIVariable& hUser, const AIVariable& nJoypad ) const { S3DX_DECLARE_VIN_02( hUser, nJoypad ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->input.getJoypadType ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             enableJoypadMotionSensors                           ( const AIVariable& hUser, const AIVariable& nJoypad, const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_03( hUser, nJoypad, bEnable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->input.enableJoypadMotionSensors ( 3, vIn, NULL ) ; }
            inline void             enableJoypadIRMotionSensors                         ( const AIVariable& hUser, const AIVariable& nJoypad, const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_03( hUser, nJoypad, bEnable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->input.enableJoypadIRMotionSensors ( 3, vIn, NULL ) ; }
            inline AIVariable       enableMultiTouch                                    ( const AIVariable& hUser, const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_02( hUser, bEnable ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->input.enableMultiTouch ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       enableVirtualMouse                                  ( const AIVariable& hUser, const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_02( hUser, bEnable ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->input.enableVirtualMouse ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             setVirtualMousePosition                             ( const AIVariable& hUser, const AIVariable& x, const AIVariable& y ) const { S3DX_DECLARE_VIN_03( hUser, x, y ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->input.setVirtualMousePosition ( 3, vIn, NULL ) ; }
            inline void             setVirtualMouseButtonDown                           ( const AIVariable& hUser, const AIVariable& nButton, const AIVariable& bDown ) const { S3DX_DECLARE_VIN_03( hUser, nButton, bDown ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->input.setVirtualMouseButtonDown ( 3, vIn, NULL ) ; }
        } ;

        struct LightPackage
        {    
            // Constants
            //
            const AIVariable        kTypePoint          ;
            const AIVariable        kTypeDirectional    ;

            LightPackage            (   ):
            kTypePoint              ( 1 ),
            kTypeDirectional        ( 2 )
            { }

            // Functions
            //
            inline AIVariable       getType                                             ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->light.getType ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       isDynamic                                           ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->light.isDynamic ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       isActive                                            ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->light.isActive ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setActive                                           ( const AIVariable& hObject, const AIVariable& bActive ) const { S3DX_DECLARE_VIN_02( hObject, bActive ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->light.setActive ( 2, vIn, NULL ) ; }
            inline void             setColor                                            ( const AIVariable& hObject, const AIVariable& nRed, const AIVariable& nGreen, const AIVariable& nBlue ) const { S3DX_DECLARE_VIN_04( hObject, nRed, nGreen, nBlue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->light.setColor ( 4, vIn, NULL ) ; }
            inline AIVariables<3>   getColor                                            ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->light.getColor ( 1, vIn, vOut ) ; return vOut ; }
        } ;

        struct LogPackage
        {
            // Functions
            //
            inline void             message                                             ( const AIVariable& _v0 ) const { S3DX_DECLARE_VIN_01( _v0 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.message ( 1, vIn, NULL ) ; }
            inline void             message                                             ( const AIVariable& _v0, const AIVariable& _v1 ) const { S3DX_DECLARE_VIN_02( _v0, _v1 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.message ( 2, vIn, NULL ) ; }
            inline void             message                                             ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2 ) const { S3DX_DECLARE_VIN_03( _v0, _v1, _v2 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.message ( 3, vIn, NULL ) ; }
            inline void             message                                             ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2, const AIVariable& _v3 ) const { S3DX_DECLARE_VIN_04( _v0, _v1, _v2, _v3 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.message ( 4, vIn, NULL ) ; }
            inline void             message                                             ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2, const AIVariable& _v3, const AIVariable& _v4 ) const { S3DX_DECLARE_VIN_05( _v0, _v1, _v2, _v3, _v4 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.message ( 5, vIn, NULL ) ; }
            inline void             message                                             ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2, const AIVariable& _v3, const AIVariable& _v4, const AIVariable& _v5 ) const { S3DX_DECLARE_VIN_06( _v0, _v1, _v2, _v3, _v4, _v5 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.message ( 6, vIn, NULL ) ; }
            inline void             message                                             ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2, const AIVariable& _v3, const AIVariable& _v4, const AIVariable& _v5, const AIVariable& _v6 ) const { S3DX_DECLARE_VIN_07( _v0, _v1, _v2, _v3, _v4, _v5, _v6 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.message ( 7, vIn, NULL ) ; }
            inline void             message                                             ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2, const AIVariable& _v3, const AIVariable& _v4, const AIVariable& _v5, const AIVariable& _v6, const AIVariable& _v7 ) const { S3DX_DECLARE_VIN_08( _v0, _v1, _v2, _v3, _v4, _v5, _v6, _v7 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.message ( 8, vIn, NULL ) ; }
            inline void             message                                             ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2, const AIVariable& _v3, const AIVariable& _v4, const AIVariable& _v5, const AIVariable& _v6, const AIVariable& _v7, const AIVariable& _v8 ) const { S3DX_DECLARE_VIN_09( _v0, _v1, _v2, _v3, _v4, _v5, _v6, _v7, _v8 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.message ( 9, vIn, NULL ) ; }
            inline void             message                                             ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2, const AIVariable& _v3, const AIVariable& _v4, const AIVariable& _v5, const AIVariable& _v6, const AIVariable& _v7, const AIVariable& _v8, const AIVariable& _v9 ) const { S3DX_DECLARE_VIN_10( _v0, _v1, _v2, _v3, _v4, _v5, _v6, _v7, _v8, _v9 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.message ( 10, vIn, NULL ) ; }
            inline void             message                                             ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2, const AIVariable& _v3, const AIVariable& _v4, const AIVariable& _v5, const AIVariable& _v6, const AIVariable& _v7, const AIVariable& _v8, const AIVariable& _v9, const AIVariable& _v10 ) const { S3DX_DECLARE_VIN_11( _v0, _v1, _v2, _v3, _v4, _v5, _v6, _v7, _v8, _v9, _v10 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.message ( 11, vIn, NULL ) ; }
            inline void             message                                             ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2, const AIVariable& _v3, const AIVariable& _v4, const AIVariable& _v5, const AIVariable& _v6, const AIVariable& _v7, const AIVariable& _v8, const AIVariable& _v9, const AIVariable& _v10, const AIVariable& _v11 ) const { S3DX_DECLARE_VIN_12( _v0, _v1, _v2, _v3, _v4, _v5, _v6, _v7, _v8, _v9, _v10, _v11 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.message ( 12, vIn, NULL ) ; }

            inline void             warning                                             ( const AIVariable& _v0 ) const { S3DX_DECLARE_VIN_01( _v0 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.warning ( 1, vIn, NULL ) ; }
            inline void             warning                                             ( const AIVariable& _v0, const AIVariable& _v1 ) const { S3DX_DECLARE_VIN_02( _v0, _v1 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.warning ( 2, vIn, NULL ) ; }
            inline void             warning                                             ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2 ) const { S3DX_DECLARE_VIN_03( _v0, _v1, _v2 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.warning ( 3, vIn, NULL ) ; }
            inline void             warning                                             ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2, const AIVariable& _v3 ) const { S3DX_DECLARE_VIN_04( _v0, _v1, _v2, _v3 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.warning ( 4, vIn, NULL ) ; }
            inline void             warning                                             ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2, const AIVariable& _v3, const AIVariable& _v4 ) const { S3DX_DECLARE_VIN_05( _v0, _v1, _v2, _v3, _v4 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.warning ( 5, vIn, NULL ) ; }
            inline void             warning                                             ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2, const AIVariable& _v3, const AIVariable& _v4, const AIVariable& _v5 ) const { S3DX_DECLARE_VIN_06( _v0, _v1, _v2, _v3, _v4, _v5 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.warning ( 6, vIn, NULL ) ; }
            inline void             warning                                             ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2, const AIVariable& _v3, const AIVariable& _v4, const AIVariable& _v5, const AIVariable& _v6 ) const { S3DX_DECLARE_VIN_07( _v0, _v1, _v2, _v3, _v4, _v5, _v6 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.warning ( 7, vIn, NULL ) ; }
            inline void             warning                                             ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2, const AIVariable& _v3, const AIVariable& _v4, const AIVariable& _v5, const AIVariable& _v6, const AIVariable& _v7 ) const { S3DX_DECLARE_VIN_08( _v0, _v1, _v2, _v3, _v4, _v5, _v6, _v7 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.warning ( 8, vIn, NULL ) ; }
            inline void             warning                                             ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2, const AIVariable& _v3, const AIVariable& _v4, const AIVariable& _v5, const AIVariable& _v6, const AIVariable& _v7, const AIVariable& _v8 ) const { S3DX_DECLARE_VIN_09( _v0, _v1, _v2, _v3, _v4, _v5, _v6, _v7, _v8 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.warning ( 9, vIn, NULL ) ; }
            inline void             warning                                             ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2, const AIVariable& _v3, const AIVariable& _v4, const AIVariable& _v5, const AIVariable& _v6, const AIVariable& _v7, const AIVariable& _v8, const AIVariable& _v9 ) const { S3DX_DECLARE_VIN_10( _v0, _v1, _v2, _v3, _v4, _v5, _v6, _v7, _v8, _v9 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.warning ( 10, vIn, NULL ) ; }
            inline void             warning                                             ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2, const AIVariable& _v3, const AIVariable& _v4, const AIVariable& _v5, const AIVariable& _v6, const AIVariable& _v7, const AIVariable& _v8, const AIVariable& _v9, const AIVariable& _v10 ) const { S3DX_DECLARE_VIN_11( _v0, _v1, _v2, _v3, _v4, _v5, _v6, _v7, _v8, _v9, _v10 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.warning ( 11, vIn, NULL ) ; }
            inline void             warning                                             ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2, const AIVariable& _v3, const AIVariable& _v4, const AIVariable& _v5, const AIVariable& _v6, const AIVariable& _v7, const AIVariable& _v8, const AIVariable& _v9, const AIVariable& _v10, const AIVariable& _v11 ) const { S3DX_DECLARE_VIN_12( _v0, _v1, _v2, _v3, _v4, _v5, _v6, _v7, _v8, _v9, _v10, _v11 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.warning ( 12, vIn, NULL ) ; }

            inline void             error                                               ( const AIVariable& _v0 ) const { S3DX_DECLARE_VIN_01( _v0 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.error ( 1, vIn, NULL ) ; }
            inline void             error                                               ( const AIVariable& _v0, const AIVariable& _v1 ) const { S3DX_DECLARE_VIN_02( _v0, _v1 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.error ( 2, vIn, NULL ) ; }
            inline void             error                                               ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2 ) const { S3DX_DECLARE_VIN_03( _v0, _v1, _v2 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.error ( 3, vIn, NULL ) ; }
            inline void             error                                               ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2, const AIVariable& _v3 ) const { S3DX_DECLARE_VIN_04( _v0, _v1, _v2, _v3 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.error ( 4, vIn, NULL ) ; }
            inline void             error                                               ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2, const AIVariable& _v3, const AIVariable& _v4 ) const { S3DX_DECLARE_VIN_05( _v0, _v1, _v2, _v3, _v4 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.error ( 5, vIn, NULL ) ; }
            inline void             error                                               ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2, const AIVariable& _v3, const AIVariable& _v4, const AIVariable& _v5 ) const { S3DX_DECLARE_VIN_06( _v0, _v1, _v2, _v3, _v4, _v5 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.error ( 6, vIn, NULL ) ; }
            inline void             error                                               ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2, const AIVariable& _v3, const AIVariable& _v4, const AIVariable& _v5, const AIVariable& _v6 ) const { S3DX_DECLARE_VIN_07( _v0, _v1, _v2, _v3, _v4, _v5, _v6 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.error ( 7, vIn, NULL ) ; }
            inline void             error                                               ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2, const AIVariable& _v3, const AIVariable& _v4, const AIVariable& _v5, const AIVariable& _v6, const AIVariable& _v7 ) const { S3DX_DECLARE_VIN_08( _v0, _v1, _v2, _v3, _v4, _v5, _v6, _v7 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.error ( 8, vIn, NULL ) ; }
            inline void             error                                               ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2, const AIVariable& _v3, const AIVariable& _v4, const AIVariable& _v5, const AIVariable& _v6, const AIVariable& _v7, const AIVariable& _v8 ) const { S3DX_DECLARE_VIN_09( _v0, _v1, _v2, _v3, _v4, _v5, _v6, _v7, _v8 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.error ( 9, vIn, NULL ) ; }
            inline void             error                                               ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2, const AIVariable& _v3, const AIVariable& _v4, const AIVariable& _v5, const AIVariable& _v6, const AIVariable& _v7, const AIVariable& _v8, const AIVariable& _v9 ) const { S3DX_DECLARE_VIN_10( _v0, _v1, _v2, _v3, _v4, _v5, _v6, _v7, _v8, _v9 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.error ( 10, vIn, NULL ) ; }
            inline void             error                                               ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2, const AIVariable& _v3, const AIVariable& _v4, const AIVariable& _v5, const AIVariable& _v6, const AIVariable& _v7, const AIVariable& _v8, const AIVariable& _v9, const AIVariable& _v10 ) const { S3DX_DECLARE_VIN_11( _v0, _v1, _v2, _v3, _v4, _v5, _v6, _v7, _v8, _v9, _v10 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.error ( 11, vIn, NULL ) ; }
            inline void             error                                               ( const AIVariable& _v0, const AIVariable& _v1, const AIVariable& _v2, const AIVariable& _v3, const AIVariable& _v4, const AIVariable& _v5, const AIVariable& _v6, const AIVariable& _v7, const AIVariable& _v8, const AIVariable& _v9, const AIVariable& _v10, const AIVariable& _v11 ) const { S3DX_DECLARE_VIN_12( _v0, _v1, _v2, _v3, _v4, _v5, _v6, _v7, _v8, _v9, _v10, _v11 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->log.error ( 12, vIn, NULL ) ; }
        } ;

        struct MathPackage
        {
            // Constants
            //
            const AIVariable        kInfinity   ;
            const AIVariable        kEpsilon    ;
            const AIVariable        kPi         ;

            MathPackage             (   ):
            kInfinity               ( 3.402823466e+38f ),
            kEpsilon                ( 0.000001f ),
            kPi                     ( 3.1415926535897932384626433832795f )
            { }

            // Functions
            //
            inline AIVariable       clamp                                               ( const AIVariable& nNumber, const AIVariable& nMin, const AIVariable& nMax ) const { S3DX_DECLARE_VIN_03( nNumber, nMin, nMax ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.clamp ( 3, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       interpolate                                         ( const AIVariable& nSrc, const AIVariable& nDst, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_03( nSrc, nDst, nFactor ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.interpolate ( 3, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       sin                                                 ( const AIVariable& nAngle ) const { S3DX_DECLARE_VIN_01( nAngle ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.sin ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       cos                                                 ( const AIVariable& nAngle ) const { S3DX_DECLARE_VIN_01( nAngle ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.cos ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       tan                                                 ( const AIVariable& nAngle ) const { S3DX_DECLARE_VIN_01( nAngle ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.tan ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       asin                                                ( const AIVariable& nValue ) const { S3DX_DECLARE_VIN_01( nValue ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.asin ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       acos                                                ( const AIVariable& nValue ) const { S3DX_DECLARE_VIN_01( nValue ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.acos ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       atan                                                ( const AIVariable& nValue ) const { S3DX_DECLARE_VIN_01( nValue ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.atan ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       atan2                                               ( const AIVariable& nValue1, const AIVariable& nValue2 ) const { S3DX_DECLARE_VIN_02( nValue1, nValue2 ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.atan2 ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       min                                                 ( const AIVariable& nValue1, const AIVariable& nValue2 ) const { S3DX_DECLARE_VIN_02( nValue1, nValue2 ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.min ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       max                                                 ( const AIVariable& nValue1, const AIVariable& nValue2 ) const { S3DX_DECLARE_VIN_02( nValue1, nValue2 ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.max ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       sqrt                                                ( const AIVariable& nValue ) const { S3DX_DECLARE_VIN_01( nValue ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.sqrt ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             resetRandomSeed                                     ( const AIVariable& nValue ) const { S3DX_DECLARE_VIN_01( nValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.resetRandomSeed ( 1, vIn, NULL ) ; }
            inline AIVariable       random                                              ( const AIVariable& nMin, const AIVariable& nMax ) const { S3DX_DECLARE_VIN_02( nMin, nMax ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.random ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       gaussianRandom                                      ( const AIVariable& nCenter, const AIVariable& nRadius ) const { S3DX_DECLARE_VIN_02( nCenter, nRadius ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.gaussianRandom ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       pow                                                 ( const AIVariable& nValue, const AIVariable& nPower ) const { S3DX_DECLARE_VIN_02( nValue, nPower ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.pow ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       floor                                               ( const AIVariable& nValue ) const { S3DX_DECLARE_VIN_01( nValue ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.floor ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       trunc                                               ( const AIVariable& nValue, const AIVariable& nDecimals ) const { S3DX_DECLARE_VIN_02( nValue, nDecimals ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.trunc ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       roundToNearestInteger                               ( const AIVariable& nValue ) const { S3DX_DECLARE_VIN_01( nValue ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.roundToNearestInteger ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       roundToNearestPowerOfTwo                            ( const AIVariable& nValue ) const { S3DX_DECLARE_VIN_01( nValue ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.roundToNearestPowerOfTwo ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       ceil                                                ( const AIVariable& nValue ) const { S3DX_DECLARE_VIN_01( nValue ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.ceil ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       abs                                                 ( const AIVariable& nValue ) const { S3DX_DECLARE_VIN_01( nValue ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.abs ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       mod                                                 ( const AIVariable& nValue1, const AIVariable& nValue2 ) const { S3DX_DECLARE_VIN_02( nValue1, nValue2 ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.mod ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       log                                                 ( const AIVariable& nValue ) const { S3DX_DECLARE_VIN_01( nValue ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.log ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       log10                                               ( const AIVariable& nValue ) const { S3DX_DECLARE_VIN_01( nValue ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.log10 ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       evaluateBSpline                                     ( const AIVariable& nValue1, const AIVariable& nValue2, const AIVariable& nValue3, const AIVariable& nValue4, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_05( nValue1, nValue2, nValue3, nValue4, nFactor ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.evaluateBSpline ( 5, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       evaluateBezier                                      ( const AIVariable& nValue1, const AIVariable& nValue2, const AIVariable& nValue3, const AIVariable& nValue4, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_05( nValue1, nValue2, nValue3, nValue4, nFactor ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.evaluateBezier ( 5, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       evaluateCatmullRom                                  ( const AIVariable& nValue1, const AIVariable& nValue2, const AIVariable& nValue3, const AIVariable& nValue4, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_05( nValue1, nValue2, nValue3, nValue4, nFactor ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.evaluateCatmullRom ( 5, vIn, &vOut ) ; return vOut ; }
            inline AIVariables<3>   computeRayPlaneIntersection                         ( const AIVariable& nRayPntX, const AIVariable& nRayPntY, const AIVariable& nRayPntZ, const AIVariable& nRayDirX, const AIVariable& nRayDirY, const AIVariable& nRayDirZ, const AIVariable& nRayLength, const AIVariable& nPlaneA, const AIVariable& nPlaneB, const AIVariable& nPlaneC, const AIVariable& nPlaneD ) const { S3DX_DECLARE_VIN_11( nRayPntX, nRayPntY, nRayPntZ, nRayDirX, nRayDirY, nRayDirZ, nRayLength, nPlaneA, nPlaneB, nPlaneC, nPlaneD ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.computeRayPlaneIntersection ( 11, vIn, vOut ) ; return vOut ; } 
            inline AIVariables<3>   computeRaySphereIntersection                        ( const AIVariable& nRayPntX, const AIVariable& nRayPntY, const AIVariable& nRayPntZ, const AIVariable& nRayDirX, const AIVariable& nRayDirY, const AIVariable& nRayDirZ, const AIVariable& nRayLength, const AIVariable& nSphereX, const AIVariable& nSphereY, const AIVariable& nSphereZ, const AIVariable& nSphereR ) const { S3DX_DECLARE_VIN_11( nRayPntX, nRayPntY, nRayPntZ, nRayDirX, nRayDirY, nRayDirZ, nRayLength, nSphereX, nSphereY, nSphereZ, nSphereR ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.computeRaySphereIntersection ( 11, vIn, vOut ) ; return vOut ; } 
            inline AIVariables<3>   computeRayAABoxIntersection                         ( const AIVariable& nRayPntX, const AIVariable& nRayPntY, const AIVariable& nRayPntZ, const AIVariable& nRayDirX, const AIVariable& nRayDirY, const AIVariable& nRayDirZ, const AIVariable& nRayLength, const AIVariable& nBoxMinX, const AIVariable& nBoxMinY, const AIVariable& nBoxMinZ, const AIVariable& nBoxMaxX, const AIVariable& nBoxMaxY, const AIVariable& nBoxMaxZ ) const { S3DX_DECLARE_VIN_13( nRayPntX, nRayPntY, nRayPntZ, nRayDirX, nRayDirY, nRayDirZ, nRayLength, nBoxMinX, nBoxMinY, nBoxMinZ, nBoxMaxX, nBoxMaxY, nBoxMaxZ ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.computeRayAABoxIntersection ( 13, vIn, vOut ) ; return vOut ; } 
            inline AIVariables<3>   vectorAdd                                           ( const AIVariable& nV1x, const AIVariable& nV1y, const AIVariable& nV1z, const AIVariable& nV2x, const AIVariable& nV2y, const AIVariable& nV2z ) const { S3DX_DECLARE_VIN_06( nV1x, nV1y, nV1z, nV2x, nV2y, nV2z ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.vectorAdd ( 6, vIn, vOut ) ; return vOut ; } 
            inline AIVariables<3>   vectorSubtract                                      ( const AIVariable& nV1x, const AIVariable& nV1y, const AIVariable& nV1z, const AIVariable& nV2x, const AIVariable& nV2y, const AIVariable& nV2z ) const { S3DX_DECLARE_VIN_06( nV1x, nV1y, nV1z, nV2x, nV2y, nV2z ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.vectorSubtract ( 6, vIn, vOut ) ; return vOut ; } 
            inline AIVariable       vectorDotProduct                                    ( const AIVariable& nV1x, const AIVariable& nV1y, const AIVariable& nV1z, const AIVariable& nV2x, const AIVariable& nV2y, const AIVariable& nV2z ) const { S3DX_DECLARE_VIN_06( nV1x, nV1y, nV1z, nV2x, nV2y, nV2z ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.vectorDotProduct ( 6, vIn, &vOut ) ; return vOut ; } 
            inline AIVariables<3>   vectorCrossProduct                                  ( const AIVariable& nV1x, const AIVariable& nV1y, const AIVariable& nV1z, const AIVariable& nV2x, const AIVariable& nV2y, const AIVariable& nV2z ) const { S3DX_DECLARE_VIN_06( nV1x, nV1y, nV1z, nV2x, nV2y, nV2z ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.vectorCrossProduct ( 6, vIn, vOut ) ; return vOut ; } 
            inline AIVariables<3>   vectorNormalize                                     ( const AIVariable& nV1x, const AIVariable& nV1y, const AIVariable& nV1z ) const { S3DX_DECLARE_VIN_03( nV1x, nV1y, nV1z ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.vectorNormalize ( 3, vIn, vOut ) ; return vOut ; } 
            inline AIVariable       vectorLength                                        ( const AIVariable& nV1x, const AIVariable& nV1y, const AIVariable& nV1z ) const { S3DX_DECLARE_VIN_03( nV1x, nV1y, nV1z ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.vectorLength ( 3, vIn, &vOut ) ; return vOut ; } 
            inline AIVariables<3>   vectorScale                                         ( const AIVariable& nV1x, const AIVariable& nV1y, const AIVariable& nV1z, const AIVariable& nScale ) const { S3DX_DECLARE_VIN_04( nV1x, nV1y, nV1z, nScale ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.vectorScale ( 4, vIn, vOut ) ; return vOut ; } 
            inline AIVariables<3>   vectorInterpolate                                   ( const AIVariable& nV1x, const AIVariable& nV1y, const AIVariable& nV1z, const AIVariable& nV2x, const AIVariable& nV2y, const AIVariable& nV2z, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_07( nV1x, nV1y, nV1z, nV2x, nV2y, nV2z, nFactor ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.vectorInterpolate ( 7, vIn, vOut ) ; return vOut ; } 
            inline AIVariables<3>   vectorReflect                                       ( const AIVariable& nV1x, const AIVariable& nV1y, const AIVariable& nV1z, const AIVariable& nV2x, const AIVariable& nV2y, const AIVariable& nV2z ) const { S3DX_DECLARE_VIN_06( nV1x, nV1y, nV1z, nV2x, nV2y, nV2z ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.vectorReflect ( 6, vIn, vOut ) ; return vOut ; } 
            inline AIVariables<3>   vectorSetLength                                     ( const AIVariable& nV1x, const AIVariable& nV1y, const AIVariable& nV1z, const AIVariable& nLength ) const { S3DX_DECLARE_VIN_04( nV1x, nV1y, nV1z, nLength ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->math.vectorSetLength ( 4, vIn, vOut ) ; return vOut ; } 
        } ;

        struct MeshPackage
        {
            // Constants
            //
            const AIVariable        kLockModeRead   ;
            const AIVariable        kLockModeWrite  ;
            const AIVariable        kLockReadWrite  ;

            MeshPackage             (   ):
            kLockModeRead           ( 1 ),
            kLockModeWrite          ( 2 ),
            kLockReadWrite          ( 3 )
            { }

            // Functions
            //
            inline AIVariable       getSubsetCount                                      ( const AIVariable& hMesh ) const { S3DX_DECLARE_VIN_01( hMesh ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.getSubsetCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getSubsetVertexCount                                ( const AIVariable& hMesh, const AIVariable& nSubset ) const { S3DX_DECLARE_VIN_02( hMesh, nSubset ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.getSubsetVertexCount ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getSubsetIndexCount                                 ( const AIVariable& hMesh, const AIVariable& nSubset, const AIVariable& nLOD ) const { S3DX_DECLARE_VIN_03( hMesh, nSubset, nLOD ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.getSubsetIndexCount ( 3, vIn, &vOut ) ; return vOut ; } 
            inline AIVariable       getSubsetLODCount                                   ( const AIVariable& hMesh, const AIVariable& nSubset ) const { S3DX_DECLARE_VIN_02( hMesh, nSubset ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.getSubsetLODCount ( 2, vIn, &vOut ) ; return vOut ; } 
            inline AIVariable       addSubset                                           ( const AIVariable& hMesh ) const { S3DX_DECLARE_VIN_01( hMesh ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.addSubset ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             removeSubset                                        ( const AIVariable& hMesh, const AIVariable& nSubset ) const { S3DX_DECLARE_VIN_02( hMesh, nSubset ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.removeSubset ( 2, vIn, NULL ) ; }
            inline AIVariable       createSubsetVertexBuffer                            ( const AIVariable& hMesh, const AIVariable& nSubset, const AIVariable& nVertexCount ) const { S3DX_DECLARE_VIN_03( hMesh, nSubset, nVertexCount ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.createSubsetVertexBuffer ( 3, vIn, &vOut ) ; return vOut ; }
            inline void             destroySubsetVertexBuffer                           ( const AIVariable& hMesh, const AIVariable& nSubset ) const { S3DX_DECLARE_VIN_02( hMesh, nSubset ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.destroySubsetVertexBuffer ( 2, vIn, NULL ) ; }
            inline AIVariable       createSubsetIndexBuffer                             ( const AIVariable& hMesh, const AIVariable& nSubset, const AIVariable& nLOD, const AIVariable& nIndexCount ) const { S3DX_DECLARE_VIN_04( hMesh, nSubset, nLOD, nIndexCount ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.createSubsetIndexBuffer ( 4, vIn, &vOut ) ; return vOut ; }
            inline void             destroySubsetIndexBuffer                            ( const AIVariable& hMesh, const AIVariable& nSubset, const AIVariable& nLOD ) const { S3DX_DECLARE_VIN_03( hMesh, nSubset, nLOD ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.destroySubsetIndexBuffer ( 3, vIn, NULL ) ; }
            inline AIVariable       lockSubsetVertexBuffer                              ( const AIVariable& hMesh, const AIVariable& nSubset, const AIVariable& kLockMode ) const { S3DX_DECLARE_VIN_03( hMesh, nSubset, kLockMode ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.lockSubsetVertexBuffer ( 3, vIn, &vOut ) ; return vOut ; } 
            inline void             unlockSubsetVertexBuffer                            ( const AIVariable& hMesh, const AIVariable& nSubset ) const { S3DX_DECLARE_VIN_02( hMesh, nSubset ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.unlockSubsetVertexBuffer ( 2, vIn, NULL ) ; }
            inline AIVariable       lockSubsetIndexBuffer                               ( const AIVariable& hMesh, const AIVariable& nSubset, const AIVariable& nLOD, const AIVariable& kLockMode ) const { S3DX_DECLARE_VIN_04( hMesh, nSubset, nLOD, kLockMode ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.lockSubsetIndexBuffer ( 4, vIn, &vOut ) ; return vOut ; } 
            inline void             unlockSubsetIndexBuffer                             ( const AIVariable& hMesh, const AIVariable& nSubset, const AIVariable& nLOD ) const { S3DX_DECLARE_VIN_03( hMesh, nSubset, nLOD ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.unlockSubsetIndexBuffer ( 3, vIn, NULL ) ; }
            inline void             setSubsetVertexPosition                             ( const AIVariable& hMesh, const AIVariable& nSubset, const AIVariable& nVertex, const AIVariable& x, const AIVariable& y, const AIVariable& z ) const { S3DX_DECLARE_VIN_06( hMesh, nSubset, nVertex, x, y, z ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.setSubsetVertexPosition ( 6, vIn, NULL ) ; }
            inline AIVariables<3>   getSubsetVertexPosition                             ( const AIVariable& hMesh, const AIVariable& nSubset, const AIVariable& nVertex ) const { S3DX_DECLARE_VIN_03( hMesh, nSubset, nVertex ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.getSubsetVertexPosition ( 3, vIn, vOut ) ; return vOut ; }
            inline void             setSubsetVertexNormal                               ( const AIVariable& hMesh, const AIVariable& nSubset, const AIVariable& nVertex, const AIVariable& i, const AIVariable& j, const AIVariable& k ) const { S3DX_DECLARE_VIN_06( hMesh, nSubset, nVertex, i, j, k ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.setSubsetVertexNormal ( 6, vIn, NULL ) ; }
            inline AIVariables<3>   getSubsetVertexNormal                               ( const AIVariable& hMesh, const AIVariable& nSubset, const AIVariable& nVertex ) const { S3DX_DECLARE_VIN_03( hMesh, nSubset, nVertex ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.getSubsetVertexNormal ( 3, vIn, vOut ) ; return vOut ; }
            inline void             setSubsetVertexTexCoord                             ( const AIVariable& hMesh, const AIVariable& nSubset, const AIVariable& nVertex, const AIVariable& nSet, const AIVariable& u, const AIVariable& v ) const { S3DX_DECLARE_VIN_06( hMesh, nSubset, nVertex, nSet, u, v ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.setSubsetVertexTexCoord ( 6, vIn, NULL ) ; }
            inline AIVariables<2>   getSubsetVertexTexCoord                             ( const AIVariable& hMesh, const AIVariable& nSubset, const AIVariable& nVertex, const AIVariable& nSet ) const { S3DX_DECLARE_VIN_04( hMesh, nSubset, nVertex, nSet ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.getSubsetVertexTexCoord ( 4, vIn, vOut ) ; return vOut ; }
            inline void             setSubsetIndexValue                                 ( const AIVariable& hMesh, const AIVariable& nSubset, const AIVariable& nLOD, const AIVariable& nIndex, const AIVariable& nValue ) const { S3DX_DECLARE_VIN_05( hMesh, nSubset, nLOD, nIndex, nValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.setSubsetIndexValue ( 5, vIn, NULL ) ; }
            inline AIVariable       getSubsetIndexValue                                 ( const AIVariable& hMesh, const AIVariable& nSubset, const AIVariable& nLOD, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_04( hMesh, nSubset, nLOD, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.getSubsetIndexValue ( 4, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getResourceHandle                                   ( const AIVariable& sName ) const { S3DX_DECLARE_VIN_01( sName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.getResourceHandle ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setSubsetVertexBufferDynamic                        ( const AIVariable& hMesh, const AIVariable& nSubset, const AIVariable& bDynamic ) const { S3DX_DECLARE_VIN_03( hMesh, nSubset, bDynamic ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.setSubsetVertexBufferDynamic ( 3, vIn, NULL ) ; }
            inline AIVariable       isSubsetVertexBufferDynamic                         ( const AIVariable& hMesh, const AIVariable& nSubset ) const { S3DX_DECLARE_VIN_02( hMesh, nSubset ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.isSubsetVertexBufferDynamic ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             setSubsetIndexBufferDynamic                         ( const AIVariable& hMesh, const AIVariable& nSubset, const AIVariable& nLOD, const AIVariable& bDynamic ) const { S3DX_DECLARE_VIN_04( hMesh, nSubset, nLOD, bDynamic ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.setSubsetIndexBufferDynamic ( 4, vIn, NULL ) ; }
            inline AIVariable       isSubsetIndexBufferDynamic                          ( const AIVariable& hMesh, const AIVariable& nSubset, const AIVariable& nLOD ) const { S3DX_DECLARE_VIN_03( hMesh, nSubset, nLOD ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.isSubsetIndexBufferDynamic ( 3, vIn, &vOut ) ; return vOut ; }
            inline void             computeSubsetVertexNormals                          ( const AIVariable& hMesh, const AIVariable& nSubset, const AIVariable& nAngle ) const { S3DX_DECLARE_VIN_03( hMesh, nSubset, nAngle ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.computeSubsetVertexNormals ( 3, vIn, NULL ) ; }
            inline void             computeSubsetVertexTangents                         ( const AIVariable& hMesh, const AIVariable& nSubset ) const { S3DX_DECLARE_VIN_02( hMesh, nSubset ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.computeSubsetVertexTangents ( 2, vIn, NULL ) ; }
            inline void             updateBoundingVolumes                               ( const AIVariable& hMesh ) const { S3DX_DECLARE_VIN_01( hMesh ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->mesh.updateBoundingVolumes ( 1, vIn, NULL ) ; }
        } ;

        struct MicrophonePackage
        {
            // Functions
            //
            inline void             setRate                                             ( const AIVariable& nRate ) const { S3DX_DECLARE_VIN_01( nRate ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->microphone.setRate ( 1, vIn, NULL ) ; }
            inline AIVariable       enable                                              ( const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_01( bEnable ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->microphone.enable ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getActivityLevel                                    ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->microphone.getActivityLevel ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       enableSpectrumAnalyzer                              ( const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_01( bEnable ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->microphone.enableSpectrumAnalyzer ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setSpectrumWidth                                    ( const AIVariable& nWidth ) const { S3DX_DECLARE_VIN_01( nWidth ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->microphone.setSpectrumWidth ( 1, vIn, NULL ) ; }
            inline AIVariable       getSpectrumWidth                                    ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->microphone.getSpectrumWidth ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getSpectrumLevels                                   ( const AIVariable& tSpectrum ) const { S3DX_DECLARE_VIN_01( tSpectrum ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->microphone.getSpectrumLevels ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setRecordingQuality                                 ( const AIVariable& nQuality ) const { S3DX_DECLARE_VIN_01( nQuality ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->microphone.setRecordingQuality ( 1, vIn, NULL ) ; }
            inline AIVariable       startRecordingAsMusic                               ( const AIVariable& sMusicName ) const { S3DX_DECLARE_VIN_01( sMusicName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->microphone.startRecordingAsMusic ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             stopRecording                                       ( ) const { S3DX_MODULE_GUID::__pS3DXEAPIMI->microphone.stopRecording ( 0, NULL, NULL ) ; }
            inline AIVariable       startDiffusion                                      ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->microphone.startDiffusion ( 0, NULL, &vOut ) ; return vOut ; }
            inline void             stopDiffusion                                       ( ) const { S3DX_MODULE_GUID::__pS3DXEAPIMI->microphone.stopDiffusion ( 0, NULL, NULL ) ; }
            inline AIVariable       addUserToDiffusionList                              ( const AIVariable& nUserID ) const { S3DX_DECLARE_VIN_01( nUserID ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->microphone.addUserToDiffusionList ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             removeUserFromDiffusionList                         ( const AIVariable& nUserID ) const { S3DX_DECLARE_VIN_01( nUserID ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->microphone.removeUserFromDiffusionList ( 1, vIn, NULL ) ; }
            inline AIVariable       isUserInDiffusionList                               ( const AIVariable& nUserID ) const { S3DX_DECLARE_VIN_01( nUserID ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->microphone.isUserInDiffusionList ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             emptyDiffusionList                                  ( ) const { S3DX_MODULE_GUID::__pS3DXEAPIMI->microphone.emptyDiffusionList ( 0, NULL, NULL ) ; }
            inline AIVariable       getDiffusionListUserCount                           ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->microphone.getDiffusionListUserCount ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getDiffusionListUserIDAt                            ( const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_01( nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->microphone.getDiffusionListUserIDAt ( 1, vIn, &vOut ) ; return vOut ; }
        } ;

        struct MusicPackage
        {
            // Functions
            //
            inline void             play                                                ( const AIVariable& hScene, const AIVariable& nMusicIndex, const AIVariable& nFadeTime ) const { S3DX_DECLARE_VIN_03( hScene, nMusicIndex, nFadeTime ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->music.play ( 3, vIn, NULL ) ; }
            inline void             stop                                                ( const AIVariable& hScene, const AIVariable& nFadeTime ) const { S3DX_DECLARE_VIN_02( hScene, nFadeTime ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->music.stop ( 2, vIn, NULL ) ; }
            inline void             setVolume                                           ( const AIVariable& hScene, const AIVariable& nVolume, const AIVariable& nFadeTime ) const { S3DX_DECLARE_VIN_03( hScene, nVolume, nFadeTime ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->music.setVolume ( 3, vIn, NULL ) ; }
            inline AIVariable       getPlaybackProgress                                 ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->music.getPlaybackProgress ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       playAdditional                                      ( const AIVariable& hScene, const AIVariable& nMusicName, const AIVariable& nFadeTime ) const { S3DX_DECLARE_VIN_03( hScene, nMusicName, nFadeTime ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->music.playAdditional ( 3, vIn, &vOut ) ; return vOut ; }
        } ;

        struct NavigationPackage
        {
            // Functions
            //
            inline AIVariable       setTargetNode                                       ( const AIVariable& hObject, const AIVariable& hNode ) const { S3DX_DECLARE_VIN_02( hObject, hNode ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->navigation.setTargetNode ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             setAcceleration                                     ( const AIVariable& hObject, const AIVariable& nAccel ) const { S3DX_DECLARE_VIN_02( hObject, nAccel ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->navigation.setAcceleration ( 2, vIn, NULL ) ; }
            inline AIVariable       getAcceleration                                     ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->navigation.getAcceleration ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setSpeedLimit                                       ( const AIVariable& hObject, const AIVariable& nLimit ) const { S3DX_DECLARE_VIN_02( hObject, nLimit ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->navigation.setSpeedLimit ( 2, vIn, NULL ) ; }
            inline AIVariable       getSpeedLimit                                       ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->navigation.getSpeedLimit ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setHeightOffset                                     ( const AIVariable& hObject, const AIVariable& nHeight ) const { S3DX_DECLARE_VIN_02( hObject, nHeight ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->navigation.setHeightOffset ( 2, vIn, NULL ) ; }
            inline AIVariable       getHeightOffset                                     ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->navigation.getHeightOffset ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getNode                                             ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->navigation.getNode ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getTargetNode                                       ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->navigation.getTargetNode ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getTargetNodeDistance                               ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->navigation.getTargetNodeDistance ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getSpeed                                            ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->navigation.getSpeed ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariables<3>   getVelocity                                         ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->navigation.getVelocity ( 1, vIn, vOut ) ; return vOut ; }
            inline AIVariable       setRandomTargetNode                                 ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->navigation.setRandomTargetNode ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       setNearestTargetNode                                ( const AIVariable& hObject, const AIVariable& hOtherObject ) const { S3DX_DECLARE_VIN_02( hObject, hOtherObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->navigation.setNearestTargetNode ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       setNearestNode                                      ( const AIVariable& hObject, const AIVariable& hOtherObject ) const { S3DX_DECLARE_VIN_02( hObject, hOtherObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->navigation.setNearestNode ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             setPathMaxLength                                    ( const AIVariable& hObject, const AIVariable& nMaxLength ) const { S3DX_DECLARE_VIN_02( hObject, nMaxLength ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->navigation.setPathMaxLength ( 2, vIn, NULL ) ; }
            inline AIVariable       getPathMaxLength                                    ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->navigation.getPathMaxLength ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getPathNodeCount                                    ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->navigation.getPathNodeCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getPathNodeAt                                       ( const AIVariable& hObject, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hObject, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->navigation.getPathNodeAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             enableNodesInBox                                    ( const AIVariable& hScene, const AIVariable& nBoxMinX, const AIVariable& nBoxMinY, const AIVariable& nBoxMinZ, const AIVariable& nBoxMaxX, const AIVariable& nBoxMaxY, const AIVariable& nBoxMaxZ, const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_08( hScene, nBoxMinX, nBoxMinY, nBoxMinZ, nBoxMaxX, nBoxMaxY, nBoxMaxZ, bEnable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->navigation.enableNodesInBox ( 8, vIn, NULL ) ; }
            inline void             enableNode                                          ( const AIVariable& hScene, const AIVariable& hNode, const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_03( hScene, hNode, bEnable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->navigation.enableNode ( 3, vIn, NULL ) ; }
            inline AIVariables<3>   getNodeTranslation                                  ( const AIVariable& hScene, const AIVariable& hNode ) const { S3DX_DECLARE_VIN_02( hScene, hNode ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->navigation.getNodeTranslation ( 2, vIn, vOut ) ; return vOut ; }
            inline AIVariable       isNodeOnBorder                                      ( const AIVariable& hScene, const AIVariable& hNode ) const { S3DX_DECLARE_VIN_02( hScene, hNode ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->navigation.isNodeOnBorder ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       isNodeEnabled                                       ( const AIVariable& hScene, const AIVariable& hNode ) const { S3DX_DECLARE_VIN_02( hScene, hNode ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->navigation.isNodeEnabled ( 2, vIn, &vOut ) ; return vOut ; }
        } ;

        struct NetworkPackage
        {
            // Constants
            //
            const AIVariable        kStatusAuthenticated    ;
            const AIVariable        kStatusPending          ;
            const AIVariable        kStatusNone             ;
            const AIVariable        kStatusSearchFinished   ;
            const AIVariable        kDefaultServerPort      ;
            const AIVariable        kBluetoothServerPort    ;

            NetworkPackage          (   ):
            kStatusAuthenticated    ( 2 ),
            kStatusPending          ( 1 ),
            kStatusNone             ( 0 ),
            kStatusSearchFinished   ( 3 ),
            kDefaultServerPort      ( 5354 ),
            kBluetoothServerPort    ( 0 )
            { }

            // Functions
            //
            inline void             authenticate                                        ( const AIVariable& sURL, const AIVariable& sLogin, const AIVariable& sPassword ) const { S3DX_DECLARE_VIN_03( sURL, sLogin, sPassword ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->network.authenticate ( 3, vIn, NULL ) ; }
            inline void             disconnect                                          ( ) const { S3DX_MODULE_GUID::__pS3DXEAPIMI->network.disconnect ( 0, NULL, NULL ) ; }
            inline AIVariable       getStatus                                           ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->network.getStatus ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getServerCount                                      ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->network.getServerCount ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getServerNameAt                                     ( const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_01( nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->network.getServerNameAt ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setCurrentServer                                    ( const AIVariable& sName ) const { S3DX_DECLARE_VIN_01( sName ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->network.setCurrentServer ( 1, vIn, NULL ) ; }
            inline AIVariable       getCurrentServer                                    ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->network.getCurrentServer ( 0, NULL, &vOut ) ; return vOut ; }
            inline void             createServer                                        ( const AIVariable& nPort ) const { S3DX_DECLARE_VIN_01( nPort ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->network.createServer ( 1, vIn, NULL ) ; }
            inline void             searchForServers                                    ( const AIVariable& nPort ) const { S3DX_DECLARE_VIN_01( nPort ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->network.searchForServers ( 1, vIn, NULL ) ; }
        } ;

        struct ObjectPackage
        {
            // Constants
            //
            const AIVariable        kGlobalSpace                                        ;
            const AIVariable        kParentSpace                                        ;
            const AIVariable        kLocalSpace                                         ;
            const AIVariable        kTypeDummy                                          ;
            const AIVariable        kTypeCamera                                         ;
            const AIVariable        kTypeGroup                                          ;
            const AIVariable        kTypeLight                                          ;
            const AIVariable        kTypeSfx                                            ;
            const AIVariable        kTypeShape                                          ;
            const AIVariable        kTypeSensor                                         ;
            const AIVariable        kTypeCollider                                       ;
            const AIVariable        kTypeReflector                                      ;
            const AIVariable        kTypeProjector                                      ;
            const AIVariable        kControllerTypeAny                                  ;
            const AIVariable        kControllerTypeAI                                   ;
            const AIVariable        kControllerTypeAnimation                            ;
            const AIVariable        kControllerTypeDynamics                             ;
            const AIVariable        kControllerTypeNavigation                           ;
            const AIVariable        kControllerTypeSound                                ;
            const AIVariable        kTransformOptionInheritsParentTranslation           ;
            const AIVariable        kTransformOptionInheritsParentRotation              ;
            const AIVariable        kTransformOptionInheritsParentScale                 ;
            const AIVariable        kTransformOptionTranslationAffectedByParentRotation ;
            const AIVariable        kTransformOptionTranslationAffectedByParentScale    ;


            ObjectPackage                                       (   ):
            kGlobalSpace                                        ( 0 ),
            kParentSpace                                        ( 1 ),
            kLocalSpace                                         ( 2 ),
            kTypeDummy                                          ( 0 ),
            kTypeCamera                                         ( 0x00000001 ),
            kTypeGroup                                          ( 0x00000002 ),
            kTypeLight                                          ( 0x00000004 ),
            kTypeSfx                                            ( 0x00000008 ),
            kTypeShape                                          ( 0x00000010 ),
            kTypeSensor                                         ( 0x00000020 ),
            kTypeCollider                                       ( 0x00000080 ),
            kTypeReflector                                      ( 0x00000100 ),
            kTypeProjector                                      ( 0x00000200 ),
            kControllerTypeAny                                  ( 0x7fffffff ),
            kControllerTypeAI                                   ( 1 ),
            kControllerTypeAnimation                            ( 2 ),
            kControllerTypeDynamics                             ( 3 ),
            kControllerTypeNavigation                           ( 4 ),
            kControllerTypeSound                                ( 5 ),
            kTransformOptionInheritsParentTranslation           ( 0 ),
            kTransformOptionInheritsParentRotation              ( 1 ),
            kTransformOptionInheritsParentScale                 ( 2 ),
            kTransformOptionTranslationAffectedByParentRotation ( 3 ),
            kTransformOptionTranslationAffectedByParentScale    ( 4 )
            { }

            // Functions
            //
            inline AIVariable       getHashCode                                         ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.getHashCode ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       isEqualTo                                           ( const AIVariable& hObject, const AIVariable& hOtherObject ) const { S3DX_DECLARE_VIN_02( hObject, hOtherObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.isEqualTo ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       isKindOf                                            ( const AIVariable& hObject, const AIVariable& kType ) const { S3DX_DECLARE_VIN_02( hObject, kType ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.isKindOf ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       hasController                                       ( const AIVariable& hObject, const AIVariable& kControllerType ) const { S3DX_DECLARE_VIN_02( hObject, kControllerType ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.hasController ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getScene                                            ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.getScene ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getParent                                           ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.getParent ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setParent                                           ( const AIVariable& hObject, const AIVariable& hParent, const AIVariable& bKeepGlobalTransform ) const { S3DX_DECLARE_VIN_03( hObject, hParent, bKeepGlobalTransform ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.setParent ( 3, vIn, NULL ) ; }
            inline AIVariable       getModelName                                        ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.getModelName ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             enableDistanceClipping                              ( const AIVariable& hObject, const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_02( hObject, bEnable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.enableDistanceClipping ( 2, vIn, NULL ) ; }
            inline void             setDistanceClippingThresholds                       ( const AIVariable& hObject, const AIVariable& nInDistance, const AIVariable& nOutDistance ) const { S3DX_DECLARE_VIN_03( hObject, nInDistance, nOutDistance ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.setDistanceClippingThresholds ( 3, vIn, NULL ) ; }
            inline void             setDistanceClippingFadeTime                         ( const AIVariable& hObject, const AIVariable& nTime ) const { S3DX_DECLARE_VIN_02( hObject, nTime ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.setDistanceClippingFadeTime ( 2, vIn, NULL ) ; }
            inline void             setCanBeReflected                                   ( const AIVariable& hObject, const AIVariable& bCan ) const { S3DX_DECLARE_VIN_02( hObject, bCan ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.setCanBeReflected ( 2, vIn, NULL ) ; }
            inline void             setCanBeRefracted                                   ( const AIVariable& hObject, const AIVariable& bCan ) const { S3DX_DECLARE_VIN_02( hObject, bCan ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.setCanBeRefracted ( 2, vIn, NULL ) ; }
            inline AIVariable       canBeReflected                                      ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.canBeReflected ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       canBeRefracted                                      ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.canBeRefracted ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       setTransformOption                                  ( const AIVariable& hObject, const AIVariable& kTransformOption, const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_03( hObject, kTransformOption, bEnable ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.setTransformOption ( 3, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getTransformOption                                  ( const AIVariable& hObject, const AIVariable& kTransformOption ) const { S3DX_DECLARE_VIN_02( hObject, kTransformOption ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.getTransformOption ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariables<3>   getTranslation                                      ( const AIVariable& hObject, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_02( hObject, kSpace ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.getTranslation ( 2, vIn, vOut ) ; return vOut ; }
            inline AIVariables<3>   getRotation                                         ( const AIVariable& hObject, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_02( hObject, kSpace ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.getRotation ( 2, vIn, vOut ) ; return vOut ; }
            inline AIVariables<3>   getScale                                            ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.getScale ( 1, vIn, vOut ) ; return vOut ; }
            inline AIVariables<3>   getDirection                                        ( const AIVariable& hObject, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_02( hObject, kSpace ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.getDirection ( 2, vIn, vOut ) ; return vOut ; }
            inline AIVariables<3>   getXAxis                                            ( const AIVariable& hObject, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_02( hObject, kSpace ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.getXAxis ( 2, vIn, vOut ) ; return vOut ; }
            inline AIVariables<3>   getYAxis                                            ( const AIVariable& hObject, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_02( hObject, kSpace ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.getYAxis ( 2, vIn, vOut ) ; return vOut ; }
            inline AIVariables<3>   getZAxis                                            ( const AIVariable& hObject, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_02( hObject, kSpace ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.getZAxis ( 2, vIn, vOut ) ; return vOut ; }
            inline void             resetTranslation                                    ( const AIVariable& hObject, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_02( hObject, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.resetTranslation ( 2, vIn, NULL ) ; }
            inline void             matchTranslation                                    ( const AIVariable& hObject, const AIVariable& hOtherObject, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_03(  hObject, hOtherObject, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.matchTranslation ( 3, vIn, NULL ) ; }
            inline void             setTranslation                                      ( const AIVariable& hObject, const AIVariable& nTx, const AIVariable& nTy, const AIVariable& nTz, uint8 kSpace ) const { S3DX_DECLARE_VIN_05( hObject, nTx, nTy, nTz, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.setTranslation ( 5, vIn, NULL ) ; }
            inline void             translate                                           ( const AIVariable& hObject, const AIVariable& nTx, const AIVariable& nTy, const AIVariable& nTz, uint8 kSpace ) const { S3DX_DECLARE_VIN_05( hObject, nTx, nTy, nTz, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.translate ( 5, vIn, NULL ) ; }
            inline void             translateTo                                         ( const AIVariable& hObject, const AIVariable& nTx, const AIVariable& nTy, const AIVariable& nTz, uint8 kSpace, float32 nFactor ) const { S3DX_DECLARE_VIN_06( hObject, nTx, nTy, nTz, kSpace, nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.translateTo ( 6, vIn, NULL ) ; }
            inline void             resetRotation                                       ( const AIVariable& hObject, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_02( hObject, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.resetRotation ( 2, vIn, NULL ) ; }
            inline void             matchRotation                                       ( const AIVariable& hObject, const AIVariable& hOtherObject, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_03(  hObject, hOtherObject, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.matchRotation ( 3, vIn, NULL ) ; }
            inline void             setRotation                                         ( const AIVariable& hObject, const AIVariable& nRx, const AIVariable& nRy, const AIVariable& nRz, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_05( hObject, nRx, nRy, nRz, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.setRotation ( 5, vIn, NULL ) ; }
            inline void             setRotationYPR                                      ( const AIVariable& hObject, const AIVariable& nYaw, const AIVariable& nPitch, const AIVariable& nRoll, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_05( hObject, nRoll, nPitch, nRoll, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.setRotationYPR ( 5, vIn, NULL ) ; }
            inline void             setRotationAxisAngle                                ( const AIVariable& hObject, const AIVariable& nAxisX, const AIVariable& nAxisY, const AIVariable& nAxisZ, const AIVariable& nAngle, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_06( hObject, nAxisX, nAxisY, nAxisZ, nAngle, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.setRotationAxisAngle ( 6, vIn, NULL ) ; }
            inline void             rotate                                              ( const AIVariable& hObject, const AIVariable& nRx, const AIVariable& nRy, const AIVariable& nRz, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_05( hObject, nRx, nRy, nRz, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.rotate ( 5, vIn, NULL ) ; }
            inline void             rotateYPR                                           ( const AIVariable& hObject, const AIVariable& nYaw, const AIVariable& nPitch, const AIVariable& nRoll, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_05( hObject, nYaw, nPitch, nRoll, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.rotateYPR ( 5, vIn, NULL ) ; }
            inline void             rotateAxisAngle                                     ( const AIVariable& hObject, const AIVariable& nAxisX, const AIVariable& nAxisY, const AIVariable& nAxisZ, const AIVariable& nAngle, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_06( hObject, nAxisX, nAxisY, nAxisZ, nAngle, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.rotateAxisAngle ( 6, vIn, NULL ) ; }
            inline void             rotateTo                                            ( const AIVariable& hObject, const AIVariable& nRx, const AIVariable& nRy, const AIVariable& nRz, const AIVariable& kSpace, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_06( hObject, nRx, nRy, nRz, kSpace, nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.rotateTo ( 6, vIn, NULL ) ; }
            inline void             rotateToYPR                                         ( const AIVariable& hObject, const AIVariable& nYaw, const AIVariable& nPitch, const AIVariable& nRoll, const AIVariable& kSpace, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_06( hObject, nYaw, nPitch, nRoll, kSpace, nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.rotateToYPR ( 6, vIn, NULL ) ; }
            inline void             rotateToAxisAngle                                   ( const AIVariable& hObject, const AIVariable& nAxisX, const AIVariable& nAxisY, const AIVariable& nAxisZ, const AIVariable& nAngle, const AIVariable& kSpace, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_07( hObject, nAxisX, nAxisY, nAxisZ, nAngle, kSpace, nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.rotateToAxisAngle ( 7, vIn, NULL ) ; }
            inline void             rotateAround                                        ( const AIVariable& hObject, const AIVariable& nPx, const AIVariable& nPy, const AIVariable& nPz, const AIVariable& nRx, const AIVariable& nRy, const AIVariable& nRz, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_08( hObject, nPx, nPy, nPz, nRx, nRy, nRz, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.rotateAround ( 8, vIn, NULL ) ; }
            inline void             lookAt                                              ( const AIVariable& hObject, const AIVariable& nPx, const AIVariable& nPy, const AIVariable& nPz, const AIVariable& kSpace, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_06( hObject, nPx, nPy, nPz, kSpace, nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.lookAt ( 6, vIn, NULL ) ; }
            inline void             lookAtWithUp                                        ( const AIVariable& hObject, const AIVariable& nPx, const AIVariable& nPy, const AIVariable& nPz, const AIVariable& nUx, const AIVariable& nUy, const AIVariable& nUz, const AIVariable& kSpace, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_09( hObject, nPx, nPy, nPz, nUx, nUy, nUz, kSpace, nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.lookAtWithUp ( 9, vIn, NULL ) ; }
            inline void             setUniformScale                                     ( const AIVariable& hObject, const AIVariable& nScale ) const { S3DX_DECLARE_VIN_02( hObject, nScale ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.setUniformScale ( 2, vIn, NULL ) ; }
            inline void             setScale                                            ( const AIVariable& hObject, const AIVariable& nSx, const AIVariable& nSy, const AIVariable& nSz ) const { S3DX_DECLARE_VIN_04( hObject, nSx, nSy, nSz ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.setScale ( 4, vIn, NULL ) ; }
            inline AIVariable       isActive                                            ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.isActive ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setVisible                                          ( const AIVariable& hObject, const AIVariable& bVisible ) const { S3DX_DECLARE_VIN_02( hObject, bVisible ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.setVisible ( 2, vIn, NULL ) ; }
            inline AIVariable       isVisible                                           ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.isVisible ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getDistanceToObject                                 ( const AIVariable& hObject, const AIVariable& hOtherObject ) const { S3DX_DECLARE_VIN_02( hObject, hOtherObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.getDistanceToObject ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getBoundingSphereRadius                             ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.getBoundingSphereRadius ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariables<3>   getBoundingSphereCenter                             ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.getBoundingSphereCenter ( 1, vIn, vOut ) ; return vOut ; }
            inline AIVariables<3>   getBoundingBoxMin                                   ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.getBoundingBoxMin ( 1, vIn, vOut ) ; return vOut ; }
            inline AIVariables<3>   getBoundingBoxMax                                   ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.getBoundingBoxMax ( 1, vIn, vOut ) ; return vOut ; }
            inline AIVariable       addAIModel                                          ( const AIVariable& hObject, const AIVariable& sAIModel ) const { S3DX_DECLARE_VIN_02( hObject, sAIModel ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.addAIModel ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             removeAIModel                                       ( const AIVariable& hObject, const AIVariable& sAIModel ) const { S3DX_DECLARE_VIN_02( hObject, sAIModel ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.removeAIModel ( 2, vIn, NULL ) ; }
            inline AIVariable       getAIModelCount                                     ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.getAIModelCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getAIModelNameAt                                    ( const AIVariable& hObject, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hObject, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.getAIModelNameAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       hasAIModel                                          ( const AIVariable& hObject, const AIVariable& sAIModel ) const { S3DX_DECLARE_VIN_02( hObject, sAIModel ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.hasAIModel ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       hasAIEventHandler                                   ( const AIVariable& hObject, const AIVariable& sAIModel, const AIVariable& sHandler ) const { S3DX_DECLARE_VIN_03( hObject, sAIModel, sHandler ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.hasAIEventHandler ( 3, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getAIVariable                                       ( const AIVariable& hObject, const AIVariable& sAIModel, const AIVariable& sVariable ) const { S3DX_DECLARE_VIN_03( hObject, sAIModel, sVariable ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.getAIVariable ( 3, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       setAIVariable                                       ( const AIVariable& hObject, const AIVariable& sAIModel, const AIVariable& sVariable, const AIVariable& vValue ) const { S3DX_DECLARE_VIN_04( hObject, sAIModel, sVariable, vValue ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.setAIVariable ( 4, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getAIState                                          ( const AIVariable& hObject, const AIVariable& sAIModel ) const { S3DX_DECLARE_VIN_02( hObject, sAIModel ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.getAIState ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       setSoundBank                                        ( const AIVariable& hObject, const AIVariable& sSoundBank ) const { S3DX_DECLARE_VIN_02( hObject, sSoundBank ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.setSoundBank ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       setAnimBank                                         ( const AIVariable& hObject, const AIVariable& sAnimBank ) const { S3DX_DECLARE_VIN_02( hObject, sAnimBank ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.setAnimBank ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariables<3>   transformVector                                     ( const AIVariable& hObject, const AIVariable& nVx, const AIVariable& nVy, const AIVariable& nVz, const AIVariable& kSrcSpace, const AIVariable& kDstSpace ) const { S3DX_DECLARE_VIN_06( hObject, nVx, nVy, nVz, kSrcSpace, kDstSpace ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.transformVector ( 6, vIn, vOut ) ; return vOut ; }
            inline AIVariables<3>   transformPoint                                      ( const AIVariable& hObject, const AIVariable& nPx, const AIVariable& nPy, const AIVariable& nPz, const AIVariable& kSrcSpace, const AIVariable& kDstSpace ) const { S3DX_DECLARE_VIN_06( hObject, nPx, nPy, nPz, kSrcSpace, kDstSpace ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.transformPoint ( 6, vIn, vOut ) ; return vOut ; }
            inline AIVariable       getChildCount                                       ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.getChildCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getChildAt                                          ( const AIVariable& hObject, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hObject, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.getChildAt ( 2, vIn, &vOut ) ; return vOut ; }

            inline void             sendEvent                                           ( const AIVariable& hObject, const AIVariable& sAIModel, const AIVariable& sEvent ) const { S3DX_DECLARE_VIN_03( hObject, sAIModel, sEvent ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.sendEvent ( 3, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hObject, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0 ) const { S3DX_DECLARE_VIN_04( hObject, sAIModel, sEvent, vParam0 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.sendEvent ( 4, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hObject, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1 ) const { S3DX_DECLARE_VIN_05( hObject, sAIModel, sEvent, vParam0, vParam1 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.sendEvent ( 5, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hObject, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2 ) const { S3DX_DECLARE_VIN_06( hObject, sAIModel, sEvent, vParam0, vParam1, vParam2 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.sendEvent ( 6, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hObject, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3 ) const { S3DX_DECLARE_VIN_07( hObject, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.sendEvent ( 7, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hObject, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4 ) const { S3DX_DECLARE_VIN_08( hObject, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.sendEvent ( 8, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hObject, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5 ) const { S3DX_DECLARE_VIN_09( hObject, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.sendEvent ( 9, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hObject, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6 ) const { S3DX_DECLARE_VIN_10( hObject, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.sendEvent ( 10, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hObject, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7 ) const { S3DX_DECLARE_VIN_11( hObject, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.sendEvent ( 11, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hObject, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8 ) const { S3DX_DECLARE_VIN_12( hObject, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.sendEvent ( 12, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hObject, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9 ) const { S3DX_DECLARE_VIN_13( hObject, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.sendEvent ( 13, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hObject, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10 ) const { S3DX_DECLARE_VIN_14( hObject, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.sendEvent ( 14, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hObject, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10, const AIVariable& vParam11 ) const { S3DX_DECLARE_VIN_15( hObject, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10, vParam11 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.sendEvent ( 15, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hObject, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10, const AIVariable& vParam11, const AIVariable& vParam12 ) const { S3DX_DECLARE_VIN_16( hObject, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10, vParam11, vParam12 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.sendEvent ( 16, vIn, NULL ) ; }

            inline void             postEvent                                           ( const AIVariable& hObject, const AIVariable& nDelay, const AIVariable& sAIModel, const AIVariable& sEvent ) const { S3DX_DECLARE_VIN_04( hObject, nDelay, sAIModel, sEvent ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.postEvent ( 4, vIn, NULL ) ; }
            inline void             postEvent                                           ( const AIVariable& hObject, const AIVariable& nDelay, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0 ) const { S3DX_DECLARE_VIN_05( hObject, nDelay, sAIModel, sEvent, vParam0 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.postEvent ( 5, vIn, NULL ) ; }
            inline void             postEvent                                           ( const AIVariable& hObject, const AIVariable& nDelay, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1 ) const { S3DX_DECLARE_VIN_06( hObject, nDelay, sAIModel, sEvent, vParam0, vParam1 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.postEvent ( 6, vIn, NULL ) ; }
            inline void             postEvent                                           ( const AIVariable& hObject, const AIVariable& nDelay, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2 ) const { S3DX_DECLARE_VIN_07( hObject, nDelay, sAIModel, sEvent, vParam0, vParam1, vParam2 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.postEvent ( 7, vIn, NULL ) ; }
            inline void             postEvent                                           ( const AIVariable& hObject, const AIVariable& nDelay, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3 ) const { S3DX_DECLARE_VIN_08( hObject, nDelay, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.postEvent ( 8, vIn, NULL ) ; }
            inline void             postEvent                                           ( const AIVariable& hObject, const AIVariable& nDelay, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4 ) const { S3DX_DECLARE_VIN_09( hObject, nDelay, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.postEvent ( 9, vIn, NULL ) ; }
            inline void             postEvent                                           ( const AIVariable& hObject, const AIVariable& nDelay, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5 ) const { S3DX_DECLARE_VIN_10( hObject, nDelay, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.postEvent ( 10, vIn, NULL ) ; }
            inline void             postEvent                                           ( const AIVariable& hObject, const AIVariable& nDelay, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6 ) const { S3DX_DECLARE_VIN_11( hObject, nDelay, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.postEvent ( 11, vIn, NULL ) ; }
            inline void             postEvent                                           ( const AIVariable& hObject, const AIVariable& nDelay, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7 ) const { S3DX_DECLARE_VIN_12( hObject, nDelay, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.postEvent ( 12, vIn, NULL ) ; }
            inline void             postEvent                                           ( const AIVariable& hObject, const AIVariable& nDelay, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8 ) const { S3DX_DECLARE_VIN_13( hObject, nDelay, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.postEvent ( 13, vIn, NULL ) ; }
            inline void             postEvent                                           ( const AIVariable& hObject, const AIVariable& nDelay, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9 ) const { S3DX_DECLARE_VIN_14( hObject, nDelay, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.postEvent ( 14, vIn, NULL ) ; }
            inline void             postEvent                                           ( const AIVariable& hObject, const AIVariable& nDelay, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10 ) const { S3DX_DECLARE_VIN_15( hObject, nDelay, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.postEvent ( 15, vIn, NULL ) ; }
            inline void             postEvent                                           ( const AIVariable& hObject, const AIVariable& nDelay, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10, const AIVariable& vParam11 ) const { S3DX_DECLARE_VIN_16( hObject, nDelay, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10, vParam11 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->object.postEvent ( 16, vIn, NULL ) ; }
        } ;

        struct PixelmapPackage
        {
            // Constants
            //
            const AIVariable        kPenModeNone        ;
            const AIVariable        kPenModeSolid       ;
            const AIVariable        kPenModeBrush       ;
            const AIVariable        kFillModeNone       ;
            const AIVariable        kFillModeSolid      ;
            const AIVariable        kFillModeBrush      ;
            const AIVariable        kBlendModeDecal     ;
            const AIVariable        kBlendModeReplace   ;

            PixelmapPackage         (   ):
            kPenModeNone            ( 0 ),
            kPenModeSolid           ( 1 ),
            kPenModeBrush           ( 2 ),
            kFillModeNone           ( 0 ),
            kFillModeSolid          ( 1 ),
            kFillModeBrush          ( 2 ),
            kBlendModeDecal         ( 0 ),
            kBlendModeReplace       ( 1 )
            { }

            // Functions
            //
            inline AIVariable       getWidth                                            ( const AIVariable& hPixelMap ) const { S3DX_DECLARE_VIN_01( hPixelMap ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->pixelmap.getWidth ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getHeight                                           ( const AIVariable& hPixelMap ) const { S3DX_DECLARE_VIN_01( hPixelMap ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->pixelmap.getHeight ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       lock                                                ( const AIVariable& hPixelMap ) const { S3DX_DECLARE_VIN_01( hPixelMap ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->pixelmap.lock ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             unlock                                              ( const AIVariable& hPixelMap ) const { S3DX_DECLARE_VIN_01( hPixelMap ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->pixelmap.unlock ( 1, vIn, NULL ) ; }
            inline void             setPixel                                            ( const AIVariable& hPixelMap, const AIVariable& x, const AIVariable& y, const AIVariable& r, const AIVariable& g, const AIVariable& b, const AIVariable& a ) const { S3DX_DECLARE_VIN_07( hPixelMap, x, y, r, g, b, a ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->pixelmap.setPixel ( 7, vIn, NULL ) ; }
            inline void             setPixels                                           ( const AIVariable& hPixelMap, const AIVariable& pixels ) const { S3DX_DECLARE_VIN_02( hPixelMap, pixels ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->pixelmap.setPixels ( 2, vIn, NULL ) ; }
            inline AIVariables<4>   getPixel                                            ( const AIVariable& hPixelMap, const AIVariable& x, const AIVariable& y ) const { S3DX_DECLARE_VIN_03( hPixelMap, x, y ) ; AIVariables<4> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->pixelmap.getPixel ( 3, vIn, vOut ) ; return vOut ; }
            inline AIVariable       getPixels                                           ( const AIVariable& hPixelMap ) const { S3DX_DECLARE_VIN_01( hPixelMap ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->pixelmap.getPixels ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       createBrushFromTexture                              ( const AIVariable& hPixelMap, const AIVariable& sBrush, const AIVariable& sTexture ) const { S3DX_DECLARE_VIN_03( hPixelMap, sBrush, sTexture ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->pixelmap.createBrushFromTexture ( 3, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       createBrushFromRectangle                            ( const AIVariable& hPixelMap, const AIVariable& sBrush, const AIVariable& x1, const AIVariable& y1, const AIVariable& x2, const AIVariable& y2 ) const { S3DX_DECLARE_VIN_06( hPixelMap, sBrush, x1, y1, x2, y2 ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->pixelmap.createBrushFromRectangle ( 6, vIn, &vOut ) ; return vOut ; }
            inline void             destroyBrush                                        ( const AIVariable& hPixelMap, const AIVariable& sBrush ) const { S3DX_DECLARE_VIN_02( hPixelMap, sBrush ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->pixelmap.destroyBrush ( 2, vIn, NULL ) ; }
            inline AIVariable       getBrushCount                                       ( const AIVariable& hPixelMap ) const { S3DX_DECLARE_VIN_01( hPixelMap ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->pixelmap.getBrushCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariables<2>   getBrushOrigin                                      ( const AIVariable& hPixelMap, const AIVariable& sBrush ) const { S3DX_DECLARE_VIN_02( hPixelMap, sBrush ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->pixelmap.getBrushOrigin ( 2, vIn, vOut ) ; return vOut ; }
            inline void             setBrushOrigin                                      ( const AIVariable& hPixelMap, const AIVariable& sBrush, const AIVariable& x, const AIVariable& y ) const { S3DX_DECLARE_VIN_04( hPixelMap, sBrush, x, y ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->pixelmap.setBrushOrigin ( 4, vIn, NULL ) ; }
            inline AIVariable       getBrushWidth                                       ( const AIVariable& hPixelMap, const AIVariable& sBrush ) const { S3DX_DECLARE_VIN_02( hPixelMap, sBrush ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->pixelmap.getBrushWidth ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getBrushHeight                                      ( const AIVariable& hPixelMap, const AIVariable& sBrush ) const { S3DX_DECLARE_VIN_02( hPixelMap, sBrush ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->pixelmap.getBrushHeight ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             setPenColor                                         ( const AIVariable& hPixelMap, const AIVariable& r, const AIVariable& g, const AIVariable& b, const AIVariable& a ) const { S3DX_DECLARE_VIN_05( hPixelMap, r, g, b, a ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->pixelmap.setPenColor ( 5, vIn, NULL ) ; }
            inline void             setPenBrush                                         ( const AIVariable& hPixelMap, const AIVariable& sBrush ) const { S3DX_DECLARE_VIN_02( hPixelMap, sBrush ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->pixelmap.setPenBrush ( 2, vIn, NULL ) ; }
            inline void             setPenMode                                          ( const AIVariable& hPixelMap, const AIVariable& kPenMode ) const { S3DX_DECLARE_VIN_02( hPixelMap, kPenMode ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->pixelmap.setPenMode ( 2, vIn, NULL ) ; }
            inline void             setFillColor                                        ( const AIVariable& hPixelMap, const AIVariable& r, const AIVariable& g, const AIVariable& b, const AIVariable& a ) const { S3DX_DECLARE_VIN_05( hPixelMap, r, g, b, a ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->pixelmap.setFillColor ( 5, vIn, NULL ) ; }
            inline void             setFillBrush                                        ( const AIVariable& hPixelMap, const AIVariable& r, const AIVariable& g, const AIVariable& b, const AIVariable& a ) const { S3DX_DECLARE_VIN_05( hPixelMap, r, g, b, a ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->pixelmap.setFillBrush ( 5, vIn, NULL ) ; }
            inline void             setFillMode                                         ( const AIVariable& hPixelMap, const AIVariable& kFillMode ) const { S3DX_DECLARE_VIN_02( hPixelMap, kFillMode ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->pixelmap.setFillMode ( 2, vIn, NULL ) ; }
            inline void             setBlendMode                                        ( const AIVariable& hPixelMap, const AIVariable& kBlendMode ) const { S3DX_DECLARE_VIN_02( hPixelMap, kBlendMode ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->pixelmap.setBlendMode ( 2, vIn, NULL ) ; }
            inline void             drawPoint                                           ( const AIVariable& hPixelMap, const AIVariable& x, const AIVariable& y ) const { S3DX_DECLARE_VIN_03( hPixelMap, x, y ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->pixelmap.drawPoint ( 3, vIn, NULL ) ; }
            inline void             drawLine                                            ( const AIVariable& hPixelMap, const AIVariable& x1, const AIVariable& y1, const AIVariable& x2, const AIVariable& y2 ) const { S3DX_DECLARE_VIN_05( hPixelMap, x1, y1, x2, y2 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->pixelmap.drawLine ( 5, vIn, NULL ) ; }
            inline void             drawRectangle                                       ( const AIVariable& hPixelMap, const AIVariable& x1, const AIVariable& y1, const AIVariable& x2, const AIVariable& y2 ) const { S3DX_DECLARE_VIN_05( hPixelMap, x1, y1, x2, y2 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->pixelmap.drawRectangle ( 5, vIn, NULL ) ; }
            inline AIVariable       saveToTexture                                       ( const AIVariable& hPixelMap, const AIVariable& sName ) const { S3DX_DECLARE_VIN_02( hPixelMap, sName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->pixelmap.saveToTexture ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getResourceHandle                                   ( const AIVariable& sName ) const { S3DX_DECLARE_VIN_01( sName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->pixelmap.getResourceHandle ( 1, vIn, &vOut ) ; return vOut ; }
        } ;

        struct ProjectorPackage
        {
            // Constants
            //
            const AIVariable        kMapTypeTexture     ;
            const AIVariable        kMapTypeTextureClip ;
            const AIVariable        kMapTypeRenderMap   ;
            const AIVariable        kMapTypePixelMap    ;
            const AIVariable        kMapTypeMovie       ;

            ProjectorPackage        (   ):
            kMapTypeTexture         ( 1 ),
            kMapTypeTextureClip     ( 2 ),
            kMapTypeRenderMap       ( 3 ),
            kMapTypePixelMap        ( 5 ),
            kMapTypeMovie           ( 4 )
            { }

            // Functions
            //
            inline void             setColor                                            ( const AIVariable& hObject, const AIVariable& nRed, const AIVariable& nGreen, const AIVariable& nBlue ) const { S3DX_DECLARE_VIN_04( hObject, nRed, nGreen, nBlue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->projector.setColor ( 4, vIn, NULL ) ; } 
            inline AIVariables<3>   getColor                                            ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->projector.getColor ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setOpacity                                          ( const AIVariable& hObject, const AIVariable& nOpacity ) const { S3DX_DECLARE_VIN_02( hObject, nOpacity ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->projector.setOpacity ( 2, vIn, NULL ) ; }
            inline AIVariable       getOpacity                                          ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->projector.getOpacity ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setFieldOfView                                      ( const AIVariable& hObject, const AIVariable& nAngle ) const { S3DX_DECLARE_VIN_02( hObject, nAngle ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->projector.setFieldOfView ( 2, vIn, NULL ) ; }
            inline AIVariable       getFieldOfView                                      ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->projector.getFieldOfView ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setMinClipDistance                                  ( const AIVariable& hObject, const AIVariable& nDistance ) const { S3DX_DECLARE_VIN_02( hObject, nDistance ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->projector.setMinClipDistance ( 2, vIn, NULL ) ; }
            inline AIVariable       getMinClipDistance                                  ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->projector.getMinClipDistance ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setMaxClipDistance                                  ( const AIVariable& hObject, const AIVariable& nDistance ) const { S3DX_DECLARE_VIN_02( hObject, nDistance ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->projector.setMaxClipDistance ( 2, vIn, NULL ) ; }
            inline AIVariable       getMaxClipDistance                                  ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->projector.getMaxClipDistance ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setMap                                              ( const AIVariable& hObject, const AIVariable& kMapName, const AIVariable& sMapType ) const { S3DX_DECLARE_VIN_03( hObject, kMapName, sMapType ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->projector.setMap ( 3, vIn, NULL ) ; }
            inline void             playMapMovie                                        ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->projector.playMapMovie ( 1, vIn, NULL ) ; }
            inline void             pauseMapMovie                                       ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->projector.pauseMapMovie ( 1, vIn, NULL ) ; }
            inline void             stopMapMovie                                        ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->projector.stopMapMovie ( 1, vIn, NULL ) ; }
        } ;

        struct ScenePackage
        {
            // Constants
            //
            const AIVariable        kAddressingModeClamp    ;
            const AIVariable        kAddressingModeRepeat   ;
            const AIVariable        kFilteringModeNearest   ;
            const AIVariable        kFilteringModeBilinear  ;
            const AIVariable        kFilteringModeTrilinear ;
            const AIVariable        kSkyBoxFaceFront        ;
            const AIVariable        kSkyBoxFaceRight        ;
            const AIVariable        kSkyBoxFaceBack         ;
            const AIVariable        kSkyBoxFaceLeft         ;
            const AIVariable        kSkyBoxFaceTop          ;
            const AIVariable        kSkyBoxFaceBottom       ;

            ScenePackage            (   ):
            kAddressingModeClamp    ( 1 ),
            kAddressingModeRepeat   ( 0 ),
            kFilteringModeNearest   ( 0 ),
            kFilteringModeBilinear  ( 1 ),
            kFilteringModeTrilinear ( 2 ),
            kSkyBoxFaceFront        ( 0 ),
            kSkyBoxFaceRight        ( 1 ),
            kSkyBoxFaceBack         ( 2 ),
            kSkyBoxFaceLeft         ( 3 ),
            kSkyBoxFaceTop          ( 4 ),
            kSkyBoxFaceBottom       ( 5 )
            { }

            // Functions
            //
            inline AIVariable       getName                                             ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getName ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getUserCount                                        ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getUserCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getUserAt                                           ( const AIVariable& hScene, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hScene, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getUserAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getTaggedObjectCount                                ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getTaggedObjectCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getTaggedObjectAt                                   ( const AIVariable& hScene, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hScene, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getTaggedObjectAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getTaggedObjectTagAt                                ( const AIVariable& hScene, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hScene, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getTaggedObjectTagAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getTaggedObject                                     ( const AIVariable& hScene, const AIVariable& sTag ) const { S3DX_DECLARE_VIN_02( hScene, sTag ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getTaggedObject ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getObjectTag                                        ( const AIVariable& hScene, const AIVariable& hObject ) const { S3DX_DECLARE_VIN_02( hScene, hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getObjectTag ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       setRuntimeObjectTag                                 ( const AIVariable& hScene, const AIVariable& hObject, const AIVariable& sTag ) const { S3DX_DECLARE_VIN_03( hScene, hObject, sTag ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setRuntimeObjectTag ( 3, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       createRuntimeObject                                 ( const AIVariable& hScene, const AIVariable& sModel ) const { S3DX_DECLARE_VIN_02( hScene, sModel ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.createRuntimeObject ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             destroyRuntimeObject                                ( const AIVariable& hScene, const AIVariable& hObject ) const { S3DX_DECLARE_VIN_02( hScene, hObject ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.destroyRuntimeObject ( 2, vIn, NULL ) ; }
            inline AIVariable       combineRuntimeObjectsGroup                          ( const AIVariable& hScene, const AIVariable& hGroupObject ) const { S3DX_DECLARE_VIN_02( hScene, hGroupObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.combineRuntimeObjectsGroup ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             setBackgroundColor                                  ( const AIVariable& hScene, const AIVariable& r, const AIVariable& g, const AIVariable& b ) const { S3DX_DECLARE_VIN_04( hScene, r, g, b ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setBackgroundColor ( 4, vIn, NULL ) ; }
            inline AIVariables<3>   getBackgroundColor                                  ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getBackgroundColor ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setBackgroundOpacity                                ( const AIVariable& hScene, const AIVariable& nOpacity ) const { S3DX_DECLARE_VIN_02( hScene, nOpacity ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setBackgroundOpacity ( 2, vIn, NULL ) ; }
            inline AIVariable       getBackgroundOpacity                                ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getBackgroundOpacity ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setBackgroundTexture                                ( const AIVariable& hScene, const AIVariable& sTexture ) const { S3DX_DECLARE_VIN_02( hScene, sTexture ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setBackgroundTexture ( 2, vIn, NULL ) ; }
            inline void             setBackgroundTextureUVOffset                        ( const AIVariable& hScene, const AIVariable& nOffsetU, const AIVariable& nOffsetV ) const { S3DX_DECLARE_VIN_03( hScene, nOffsetU, nOffsetV ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setBackgroundTextureUVOffset ( 3, vIn, NULL ) ; }
            inline void             setBackgroundTextureUVScale                         ( const AIVariable& hScene, const AIVariable& nScaleU, const AIVariable& nScaleV ) const { S3DX_DECLARE_VIN_03( hScene, nScaleU, nScaleV ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setBackgroundTextureUVScale ( 3, vIn, NULL ) ; }
            inline void             setBackgroundTextureAddressingMode                  ( const AIVariable& hScene, const AIVariable& kAddressingModeU, const AIVariable& kAddressingModeV ) const { S3DX_DECLARE_VIN_03( hScene, kAddressingModeU, kAddressingModeV ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setBackgroundTextureAddressingMode ( 3, vIn, NULL ) ; }
            inline void             setBackgroundTextureFilteringMode                   ( const AIVariable& hScene, const AIVariable& kFilteringMode ) const { S3DX_DECLARE_VIN_02( hScene, kFilteringMode ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setBackgroundTextureFilteringMode ( 2, vIn, NULL ) ; }
            inline void             setSkyBoxColor                                      ( const AIVariable& hScene, const AIVariable& r, const AIVariable& g, const AIVariable& b ) const { S3DX_DECLARE_VIN_04( hScene, r, g, b ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setSkyBoxColor ( 4, vIn, NULL ) ; }
            inline AIVariables<3>   getSkyBoxColor                                      ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getSkyBoxColor ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setSkyBoxFaceMap                                    ( const AIVariable& hScene, const AIVariable& kFace, const AIVariable& sMapName ) const { S3DX_DECLARE_VIN_03( hScene, kFace, sMapName ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setSkyBoxFaceMap ( 3, vIn, NULL ) ; }
            inline void             setAmbientColor                                     ( const AIVariable& hScene, const AIVariable& r, const AIVariable& g, const AIVariable& b ) const { S3DX_DECLARE_VIN_04( hScene, r, g, b ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setAmbientColor ( 4, vIn, NULL ) ; }
            inline AIVariables<3>   getAmbientColor                                     ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getAmbientColor ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setShadowAmbientColor                               ( const AIVariable& hScene, const AIVariable& r, const AIVariable& g, const AIVariable& b ) const { S3DX_DECLARE_VIN_04( hScene, r, g, b ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setShadowAmbientColor ( 4, vIn, NULL ) ; }
            inline AIVariables<3>   getShadowAmbientColor                               ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getShadowAmbientColor ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setFogDensity                                       ( const AIVariable& hScene, const AIVariable& nDensity ) const { S3DX_DECLARE_VIN_02( hScene, nDensity ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setFogDensity ( 2, vIn, NULL ) ; }
            inline AIVariable       getFogDensity                                       ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getFogDensity ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setFogColor                                         ( const AIVariable& hScene, const AIVariable& r, const AIVariable& g, const AIVariable& b ) const { S3DX_DECLARE_VIN_04( hScene, r, g, b ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setFogColor ( 4, vIn, NULL ) ; }
            inline AIVariables<3>   getFogColor                                         ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getFogColor ( 1, vIn, vOut ) ; return vOut ; }
            inline AIVariable       createOcean                                         ( const AIVariable& hScene, const AIVariable& nGridSize, const AIVariable& nUnitSize, const AIVariable& nWavesTiling ) const { S3DX_DECLARE_VIN_04( hScene, nGridSize, nUnitSize, nWavesTiling ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.createOcean ( 4, vIn, &vOut ) ; return vOut ; }
            inline void             destroyOcean                                        ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.destroyOcean ( 1, vIn, NULL ) ; }
            inline void             setOceanWavesAmplitude                              ( const AIVariable& hScene, const AIVariable& nAmplitude ) const { S3DX_DECLARE_VIN_02( hScene, nAmplitude ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setOceanWavesAmplitude ( 2, vIn, NULL ) ; }
            inline AIVariable       getOceanWavesAmplitude                              ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getOceanWavesAmplitude ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setOceanWavesMeanHeight                             ( const AIVariable& hScene, const AIVariable& nHeight ) const { S3DX_DECLARE_VIN_02( hScene, nHeight ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setOceanWavesMeanHeight ( 2, vIn, NULL ) ; }
            inline AIVariable       getOceanWavesMeanHeight                             ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getOceanWavesMeanHeight ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setOceanWavesFrequency                              ( const AIVariable& hScene, const AIVariable& nFrequency ) const { S3DX_DECLARE_VIN_02( hScene, nFrequency ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setOceanWavesFrequency ( 2, vIn, NULL ) ; }
            inline AIVariable       getOceanWavesFrequency                              ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getOceanWavesFrequency ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setOceanUnderwaterFogDensity                        ( const AIVariable& hScene, const AIVariable& nDensity ) const { S3DX_DECLARE_VIN_02( hScene, nDensity ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setOceanUnderwaterFogDensity ( 2, vIn, NULL ) ; }
            inline AIVariable       getOceanUnderwaterFogDensity                        ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getOceanUnderwaterFogDensity ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setOceanUnderwaterFogColor                          ( const AIVariable& hScene, const AIVariable& r, const AIVariable& g, const AIVariable& b ) const { S3DX_DECLARE_VIN_04( hScene, r, g, b ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setOceanUnderwaterFogColor ( 4, vIn, NULL ) ; }
            inline AIVariables<3>   getOceanUnderwaterFogColor                          ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getOceanUnderwaterFogColor ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setOceanSurfaceColor                                ( const AIVariable& hScene, const AIVariable& r, const AIVariable& g, const AIVariable& b ) const { S3DX_DECLARE_VIN_04( hScene, r, g, b ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setOceanSurfaceColor ( 4, vIn, NULL ) ; }
            inline AIVariables<3>   getOceanSurfaceColor                                ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getOceanSurfaceColor ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setOceanSurfaceColorFactor                          ( const AIVariable& hScene, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_02( hScene, nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setOceanSurfaceColorFactor ( 2, vIn, NULL ) ; }
            inline AIVariable       getOceanSurfaceColorFactor                          ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getOceanSurfaceColorFactor ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setOceanSurfaceColorMaxDistance                     ( const AIVariable& hScene, const AIVariable& nDistance ) const { S3DX_DECLARE_VIN_02( hScene, nDistance ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setOceanSurfaceColorMaxDistance ( 2, vIn, NULL ) ; }
            inline AIVariable       getOceanSurfaceColorMaxDistance                     ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getOceanSurfaceColorMaxDistance ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getOceanHeight                                      ( const AIVariable& hScene, const AIVariable& x, const AIVariable& z ) const { S3DX_DECLARE_VIN_03( hScene, x, z ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getOceanHeight ( 3, vIn, &vOut ) ; return vOut ; }
            inline AIVariables<3>   getOceanNormal                                      ( const AIVariable& hScene, const AIVariable& x, const AIVariable& z ) const { S3DX_DECLARE_VIN_03( hScene, x, z ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getOceanNormal ( 3, vIn, vOut ) ; return vOut ; }
            inline void             setOceanFoamMap                                     ( const AIVariable& hScene, const AIVariable& sMapName ) const { S3DX_DECLARE_VIN_02( hScene, sMapName ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setOceanFoamMap ( 2, vIn, NULL ) ; }
            inline void             setOceanFoamMapTiling                               ( const AIVariable& hScene, const AIVariable& nValue ) const { S3DX_DECLARE_VIN_02( hScene, nValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setOceanFoamMapTiling ( 2, vIn, NULL ) ; }
            inline AIVariable       getOceanFoamMapTiling                               ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getOceanFoamMapTiling ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setOceanNormalMapTiling                             ( const AIVariable& hScene, const AIVariable& nValue ) const { S3DX_DECLARE_VIN_02( hScene, nValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setOceanNormalMapTiling ( 2, vIn, NULL ) ; }
            inline AIVariable       getOceanNormalMapTiling                             ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getOceanNormalMapTiling ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setOceanReflectionNoiseScale                        ( const AIVariable& hScene, const AIVariable& nScale ) const { S3DX_DECLARE_VIN_02( hScene, nScale ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setOceanReflectionNoiseScale ( 2, vIn, NULL ) ; }
            inline AIVariable       getOceanReflectionNoiseScale                        ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getOceanReflectionNoiseScale ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setOceanRefractionNoiseScale                        ( const AIVariable& hScene, const AIVariable& nScale ) const { S3DX_DECLARE_VIN_02( hScene, nScale ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setOceanRefractionNoiseScale ( 2, vIn, NULL ) ; }
            inline AIVariable       getOceanRefractionNoiseScale                        ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getOceanRefractionNoiseScale ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setOceanFresnelPower                                ( const AIVariable& hScene, const AIVariable& nPower ) const { S3DX_DECLARE_VIN_02( hScene, nPower ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setOceanFresnelPower ( 2, vIn, NULL ) ; }
            inline AIVariable       getOceanFresnelPower                                ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getOceanFresnelPower ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setOceanFresnelBias                                 ( const AIVariable& hScene, const AIVariable& nBias ) const { S3DX_DECLARE_VIN_02( hScene, nBias ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setOceanFresnelBias ( 2, vIn, NULL ) ; }
            inline AIVariable       getOceanFresnelBias                                 ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getOceanFresnelBias ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setOceanReflectorBias                               ( const AIVariable& hScene, const AIVariable& nBias ) const { S3DX_DECLARE_VIN_02( hScene, nBias ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setOceanReflectorBias ( 2, vIn, NULL ) ; }
            inline AIVariable       getOceanReflectorBias                               ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getOceanReflectorBias ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setColorLevels                                      ( const AIVariable& hScene, const AIVariable& r, const AIVariable& g, const AIVariable& b, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_05( hScene, r, g, b, nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setColorLevels ( 5, vIn, NULL ) ; }
            inline AIVariables<4>   getColorLevels                                      ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariables<4> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getColorLevels ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setColorSaturation                                  ( const AIVariable& hScene, const AIVariable& r, const AIVariable& g, const AIVariable& b, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_05( hScene, r, g, b, nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setColorSaturation ( 5, vIn, NULL ) ; }
            inline AIVariables<4>   getColorSaturation                                  ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariables<4> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getColorSaturation ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setColorContrast                                    ( const AIVariable& hScene, const AIVariable& nContrast ) const { S3DX_DECLARE_VIN_02( hScene, nContrast ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setColorContrast ( 2, vIn, NULL ) ; }
            inline AIVariable       getColorContrast                                    ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getColorContrast ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setMonochromeFilter                                 ( const AIVariable& hScene, const AIVariable& r, const AIVariable& g, const AIVariable& b, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_05( hScene, r, g, b, nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setMonochromeFilter ( 5, vIn, NULL ) ; }
            inline AIVariables<4>   getMonochromeFilter                                 ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariables<4> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getMonochromeFilter ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setBloomIntensity                                   ( const AIVariable& hScene, const AIVariable& nIntensity ) const { S3DX_DECLARE_VIN_02( hScene, nIntensity ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setBloomIntensity ( 2, vIn, NULL ) ; }
            inline AIVariable       getBloomIntensity                                   ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getBloomIntensity ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setBloomThreshold                                   ( const AIVariable& hScene, const AIVariable& nThreshold ) const { S3DX_DECLARE_VIN_02( hScene, nThreshold ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setBloomThreshold ( 2, vIn, NULL ) ; }
            inline AIVariable       getBloomThreshold                                   ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getBloomThreshold ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setBloomColoring                                    ( const AIVariable& hScene, const AIVariable& nColoring ) const { S3DX_DECLARE_VIN_02( hScene, nColoring ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setBloomColoring ( 2, vIn, NULL ) ; }
            inline AIVariable       getBloomColoring                                    ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getBloomColoring ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setBloomMotionBlurFactor                            ( const AIVariable& hScene, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_02( hScene, nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setBloomMotionBlurFactor ( 2, vIn, NULL ) ; }
            inline AIVariable       getBloomMotionBlurFactor                            ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getBloomMotionBlurFactor ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getObjectCount                                      ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getObjectCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getObjectAt                                         ( const AIVariable& hScene, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hScene, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getObjectAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariables<3>   getFirstHitCollider                                 ( const AIVariable& hScene, const AIVariable& nRayPosX, const AIVariable& nRayPosY, const AIVariable& nRayPosZ, const AIVariable& nRayDirX, const AIVariable& nRayDirY, const AIVariable& nRayDirZ, const AIVariable& nRayLength ){ S3DX_DECLARE_VIN_08( hScene, nRayPosX, nRayPosY, nRayPosZ, nRayDirX, nRayDirY, nRayDirZ, nRayLength ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getFirstHitCollider ( 8, vIn, vOut ) ; return vOut ; }
            inline AIVariables<9>   getFirstHitColliderEx                               ( const AIVariable& hScene, const AIVariable& nRayPosX, const AIVariable& nRayPosY, const AIVariable& nRayPosZ, const AIVariable& nRayDirX, const AIVariable& nRayDirY, const AIVariable& nRayDirZ, const AIVariable& nRayLength ){ S3DX_DECLARE_VIN_08( hScene, nRayPosX, nRayPosY, nRayPosZ, nRayDirX, nRayDirY, nRayDirZ, nRayLength ) ; AIVariables<9> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getFirstHitColliderEx ( 8, vIn, vOut ) ; return vOut ; }
            inline AIVariables<2>   getFirstHitColliderWithID                           ( const AIVariable& hScene, const AIVariable& nRayPosX, const AIVariable& nRayPosY, const AIVariable& nRayPosZ, const AIVariable& nRayDirX, const AIVariable& nRayDirY, const AIVariable& nRayDirZ, const AIVariable& nRayLength, const AIVariable& nSurfaceID ) const { S3DX_DECLARE_VIN_09( hScene, nRayPosX, nRayPosY, nRayPosZ, nRayDirX, nRayDirY, nRayDirZ, nRayLength, nSurfaceID ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getFirstHitColliderWithID ( 9, vIn, vOut ) ; return vOut ; }
            inline AIVariables<8>   getFirstHitColliderWithIDEx                         ( const AIVariable& hScene, const AIVariable& nRayPosX, const AIVariable& nRayPosY, const AIVariable& nRayPosZ, const AIVariable& nRayDirX, const AIVariable& nRayDirY, const AIVariable& nRayDirZ, const AIVariable& nRayLength, const AIVariable& nSurfaceID ) const { S3DX_DECLARE_VIN_09( hScene, nRayPosX, nRayPosY, nRayPosZ, nRayDirX, nRayDirY, nRayDirZ, nRayLength, nSurfaceID ) ; AIVariables<8> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getFirstHitColliderWithIDEx ( 9, vIn, vOut ) ; return vOut ; }
            inline AIVariables<3>   getFirstHitSensor                                   ( const AIVariable& hScene, const AIVariable& nRayPosX, const AIVariable& nRayPosY, const AIVariable& nRayPosZ, const AIVariable& nRayDirX, const AIVariable& nRayDirY, const AIVariable& nRayDirZ, const AIVariable& nRayLength ) const { S3DX_DECLARE_VIN_08( hScene, nRayPosX, nRayPosY, nRayPosZ, nRayDirX, nRayDirY, nRayDirZ, nRayLength ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getFirstHitSensor ( 8, vIn, vOut ) ; return vOut ; }
            inline AIVariables<2>   getFirstHitSensorWithID                             ( const AIVariable& hScene, const AIVariable& nRayPosX, const AIVariable& nRayPosY, const AIVariable& nRayPosZ, const AIVariable& nRayDirX, const AIVariable& nRayDirY, const AIVariable& nRayDirZ, const AIVariable& nRayLength, const AIVariable& nSensorID ) const { S3DX_DECLARE_VIN_09( hScene, nRayPosX, nRayPosY, nRayPosZ, nRayDirX, nRayDirY, nRayDirZ, nRayLength, nSensorID ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getFirstHitSensorWithID ( 9, vIn, vOut ) ; return vOut ; }
            inline AIVariables<3>   getFirstHitSensorWithIDInRange                      ( const AIVariable& hScene, const AIVariable& nRayPosX, const AIVariable& nRayPosY, const AIVariable& nRayPosZ, const AIVariable& nRayDirX, const AIVariable& nRayDirY, const AIVariable& nRayDirZ, const AIVariable& nRayLength, const AIVariable& nMinSensorID, const AIVariable& nMaxSensorID ) const { S3DX_DECLARE_VIN_10( hScene, nRayPosX, nRayPosY, nRayPosZ, nRayDirX, nRayDirY, nRayDirZ, nRayLength, nMinSensorID, nMaxSensorID ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getFirstHitSensorWithIDInRange ( 10, vIn, vOut ) ; return vOut ; }
            inline AIVariables<3>   getFirstHitTerrainChunk                             ( const AIVariable& hScene, const AIVariable& nRayPosX, const AIVariable& nRayPosY, const AIVariable& nRayPosZ, const AIVariable& nRayDirX, const AIVariable& nRayDirY, const AIVariable& nRayDirZ, const AIVariable& nRayLength ) const { S3DX_DECLARE_VIN_08( hScene, nRayPosX, nRayPosY, nRayPosZ, nRayDirX, nRayDirY, nRayDirZ, nRayLength ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getFirstHitTerrainChunk ( 8, vIn, vOut ) ; return vOut ; }
            inline AIVariable       getTerrainHeight                                    ( const AIVariable& hScene, const AIVariable& x, const AIVariable& z ) const { S3DX_DECLARE_VIN_03( hScene, x, z ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getTerrainHeight ( 3, vIn, &vOut ) ; return vOut ; }
            inline AIVariables<3>   getTerrainNormal                                    ( const AIVariable& hScene, const AIVariable& x, const AIVariable& z ) const { S3DX_DECLARE_VIN_03( hScene, x, z ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getTerrainNormal ( 3, vIn, vOut ) ; return vOut ; }
            inline AIVariable       getTerrainStatus                                    ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getTerrainStatus ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setTerrainTextureFilteringMode                      ( const AIVariable& hScene, const AIVariable& kFilteringMode ) const { S3DX_DECLARE_VIN_02( hScene, kFilteringMode ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setTerrainTextureFilteringMode ( 2, vIn, NULL ) ; }
            inline void             setTerrainLODSwitchThreshold                        ( const AIVariable& hScene, const AIVariable& nThreshold ) const { S3DX_DECLARE_VIN_02( hScene, nThreshold ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setTerrainLODSwitchThreshold ( 2, vIn, NULL ) ; }
            inline void             setTerrainVegetationLayerMaxVisibleInstances        ( const AIVariable& hScene, const AIVariable& nLayer, const AIVariable& nCount ) const { S3DX_DECLARE_VIN_03( hScene, nLayer, nCount ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setTerrainVegetationLayerMaxVisibleInstances ( 3, vIn, NULL ) ; }
            inline void             setTerrainVegetationLayerVisible                    ( const AIVariable& hScene, const AIVariable& nLayer, const AIVariable& bVisible ) const { S3DX_DECLARE_VIN_03( hScene, nLayer, bVisible ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setTerrainVegetationLayerVisible ( 3, vIn, NULL ) ; }
            inline void             setTerrainVegetationLayerTextureFilteringMode       ( const AIVariable& hScene, const AIVariable& nLayer, const AIVariable& kFilteringMode ) const { S3DX_DECLARE_VIN_03( hScene, nLayer, kFilteringMode ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setTerrainVegetationLayerTextureFilteringMode ( 3, vIn, NULL ) ; }
            inline AIVariable       getTerrainVegetationLayerCount                      ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getTerrainVegetationLayerCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setDynamicsTimeStep                                 ( const AIVariable& hScene, const AIVariable& nTimeStep ) const { S3DX_DECLARE_VIN_02( hScene, nTimeStep ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setDynamicsTimeStep ( 2, vIn, NULL ) ; }
            inline AIVariable       getDynamicsTimeStep                                 ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getDynamicsTimeStep ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setDynamicsIterationsPerStep                        ( const AIVariable& hScene, const AIVariable& nIterations ) const { S3DX_DECLARE_VIN_02( hScene, nIterations ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setDynamicsIterationsPerStep ( 2, vIn, NULL ) ; }
            inline AIVariable       getDynamicsIterationsPerStep                        ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getDynamicsIterationsPerStep ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setDynamicsGravity                                  ( const AIVariable& hScene, const AIVariable& nX, const AIVariable& nY, const AIVariable& nZ ) const { S3DX_DECLARE_VIN_04( hScene, nX, nY, nZ ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setDynamicsGravity ( 4, vIn, NULL ) ; }
            inline AIVariables<3>   getDynamicsGravity                                  ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getDynamicsGravity ( 1, vIn, vOut ) ; return vOut ; }
            inline void             setPaused                                           ( const AIVariable& hScene, const AIVariable& bPaused ) const { S3DX_DECLARE_VIN_02( hScene, bPaused ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setPaused ( 2, vIn, NULL ) ; }
            inline void             setPerPixelLightingMinScreenSize                    ( const AIVariable& hScene, const AIVariable& nSize ) const { S3DX_DECLARE_VIN_02( hScene, nSize ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setPerPixelLightingMinScreenSize ( 2, vIn, NULL ) ; }
            inline AIVariable       getPerPixelLightingMinScreenSize                    ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getPerPixelLightingMinScreenSize ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setNormalMappingMinScreenSize                       ( const AIVariable& hScene, const AIVariable& nSize ) const { S3DX_DECLARE_VIN_02( hScene, nSize ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setNormalMappingMinScreenSize ( 2, vIn, NULL ) ; }
            inline AIVariable       getNormalMappingMinScreenSize                       ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getNormalMappingMinScreenSize ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setNormalMappingFadeScreenSize                      ( const AIVariable& hScene, const AIVariable& nSize ) const { S3DX_DECLARE_VIN_02( hScene, nSize ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setNormalMappingFadeScreenSize ( 2, vIn, NULL ) ; }
            inline AIVariable       getNormalMappingFadeScreenSize                      ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getNormalMappingFadeScreenSize ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setSpecularLightingMinScreenSize                    ( const AIVariable& hScene, const AIVariable& nSize ) const { S3DX_DECLARE_VIN_02( hScene, nSize ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setSpecularLightingMinScreenSize ( 2, vIn, NULL ) ; }
            inline AIVariable       getSpecularLightingMinScreenSize                    ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getSpecularLightingMinScreenSize ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setSpecularLightingFadeScreenSize                   ( const AIVariable& hScene, const AIVariable& nSize ) const { S3DX_DECLARE_VIN_02( hScene, nSize ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setSpecularLightingFadeScreenSize ( 2, vIn, NULL ) ; }
            inline AIVariable       getSpecularLightingFadeScreenSize                   ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getSpecularLightingFadeScreenSize ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setDynamicShadowsFadeDistance                       ( const AIVariable& hScene, const AIVariable& nDistance ) const { S3DX_DECLARE_VIN_02( hScene, nDistance ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setDynamicShadowsFadeDistance ( 2, vIn, NULL ) ; }
            inline AIVariable       getDynamicShadowsFadeDistance                       ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getDynamicShadowsFadeDistance ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setDynamicShadowsMaxDistance                        ( const AIVariable& hScene, const AIVariable& nDistance ) const { S3DX_DECLARE_VIN_02( hScene, nDistance ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.setDynamicShadowsMaxDistance ( 2, vIn, NULL ) ; }
            inline AIVariable       getDynamicShadowsMaxDistance                        ( const AIVariable& hScene ) const { S3DX_DECLARE_VIN_01( hScene ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.getDynamicShadowsMaxDistance ( 1, vIn, &vOut ) ; return vOut ; }

            inline void             sendEventToAllUsers                                 ( const AIVariable& hScene, const AIVariable& sAIModel, const AIVariable& sEvent ) const { S3DX_DECLARE_VIN_03( hScene, sAIModel, sEvent ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.sendEventToAllUsers ( 3, vIn, NULL ) ; }
            inline void             sendEventToAllUsers                                 ( const AIVariable& hScene, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0 ) const { S3DX_DECLARE_VIN_04( hScene, sAIModel, sEvent, vParam0 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.sendEventToAllUsers ( 4, vIn, NULL ) ; }
            inline void             sendEventToAllUsers                                 ( const AIVariable& hScene, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1 ) const { S3DX_DECLARE_VIN_05( hScene, sAIModel, sEvent, vParam0, vParam1 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.sendEventToAllUsers ( 5, vIn, NULL ) ; }
            inline void             sendEventToAllUsers                                 ( const AIVariable& hScene, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2 ) const { S3DX_DECLARE_VIN_06( hScene, sAIModel, sEvent, vParam0, vParam1, vParam2 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.sendEventToAllUsers ( 6, vIn, NULL ) ; }
            inline void             sendEventToAllUsers                                 ( const AIVariable& hScene, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3 ) const { S3DX_DECLARE_VIN_07( hScene, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.sendEventToAllUsers ( 7, vIn, NULL ) ; }
            inline void             sendEventToAllUsers                                 ( const AIVariable& hScene, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4 ) const { S3DX_DECLARE_VIN_08( hScene, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.sendEventToAllUsers ( 8, vIn, NULL ) ; }
            inline void             sendEventToAllUsers                                 ( const AIVariable& hScene, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5 ) const { S3DX_DECLARE_VIN_09( hScene, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.sendEventToAllUsers ( 9, vIn, NULL ) ; }
            inline void             sendEventToAllUsers                                 ( const AIVariable& hScene, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6 ) const { S3DX_DECLARE_VIN_10( hScene, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.sendEventToAllUsers ( 10, vIn, NULL ) ; }
            inline void             sendEventToAllUsers                                 ( const AIVariable& hScene, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7 ) const { S3DX_DECLARE_VIN_11( hScene, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.sendEventToAllUsers ( 11, vIn, NULL ) ; }
            inline void             sendEventToAllUsers                                 ( const AIVariable& hScene, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8 ) const { S3DX_DECLARE_VIN_12( hScene, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.sendEventToAllUsers ( 12, vIn, NULL ) ; }
            inline void             sendEventToAllUsers                                 ( const AIVariable& hScene, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9 ) const { S3DX_DECLARE_VIN_13( hScene, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.sendEventToAllUsers ( 13, vIn, NULL ) ; }
            inline void             sendEventToAllUsers                                 ( const AIVariable& hScene, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10 ) const { S3DX_DECLARE_VIN_14( hScene, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.sendEventToAllUsers ( 14, vIn, NULL ) ; }
            inline void             sendEventToAllUsers                                 ( const AIVariable& hScene, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10, const AIVariable& vParam11 ) const { S3DX_DECLARE_VIN_15( hScene, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10, vParam11 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.sendEventToAllUsers ( 15, vIn, NULL ) ; }
            inline void             sendEventToAllUsers                                 ( const AIVariable& hScene, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10, const AIVariable& vParam11, const AIVariable& vParam12 ) const { S3DX_DECLARE_VIN_16( hScene, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10, vParam11, vParam12 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.sendEventToAllUsers ( 16, vIn, NULL ) ; }

            inline void             sendEventToAllObjects                               ( const AIVariable& hScene, const AIVariable& sAIModel, const AIVariable& sEvent ) const { S3DX_DECLARE_VIN_03( hScene, sAIModel, sEvent ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.sendEventToAllObjects ( 3, vIn, NULL ) ; }
            inline void             sendEventToAllObjects                               ( const AIVariable& hScene, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0 ) const { S3DX_DECLARE_VIN_04( hScene, sAIModel, sEvent, vParam0 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.sendEventToAllObjects ( 4, vIn, NULL ) ; }
            inline void             sendEventToAllObjects                               ( const AIVariable& hScene, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1 ) const { S3DX_DECLARE_VIN_05( hScene, sAIModel, sEvent, vParam0, vParam1 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.sendEventToAllObjects ( 5, vIn, NULL ) ; }
            inline void             sendEventToAllObjects                               ( const AIVariable& hScene, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2 ) const { S3DX_DECLARE_VIN_06( hScene, sAIModel, sEvent, vParam0, vParam1, vParam2 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.sendEventToAllObjects ( 6, vIn, NULL ) ; }
            inline void             sendEventToAllObjects                               ( const AIVariable& hScene, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3 ) const { S3DX_DECLARE_VIN_07( hScene, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.sendEventToAllObjects ( 7, vIn, NULL ) ; }
            inline void             sendEventToAllObjects                               ( const AIVariable& hScene, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4 ) const { S3DX_DECLARE_VIN_08( hScene, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.sendEventToAllObjects ( 8, vIn, NULL ) ; }
            inline void             sendEventToAllObjects                               ( const AIVariable& hScene, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5 ) const { S3DX_DECLARE_VIN_09( hScene, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.sendEventToAllObjects ( 9, vIn, NULL ) ; }
            inline void             sendEventToAllObjects                               ( const AIVariable& hScene, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6 ) const { S3DX_DECLARE_VIN_10( hScene, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.sendEventToAllObjects ( 10, vIn, NULL ) ; }
            inline void             sendEventToAllObjects                               ( const AIVariable& hScene, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7 ) const { S3DX_DECLARE_VIN_11( hScene, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.sendEventToAllObjects ( 11, vIn, NULL ) ; }
            inline void             sendEventToAllObjects                               ( const AIVariable& hScene, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8 ) const { S3DX_DECLARE_VIN_12( hScene, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.sendEventToAllObjects ( 12, vIn, NULL ) ; }
            inline void             sendEventToAllObjects                               ( const AIVariable& hScene, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9 ) const { S3DX_DECLARE_VIN_13( hScene, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.sendEventToAllObjects ( 13, vIn, NULL ) ; }
            inline void             sendEventToAllObjects                               ( const AIVariable& hScene, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10 ) const { S3DX_DECLARE_VIN_14( hScene, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.sendEventToAllObjects ( 14, vIn, NULL ) ; }
            inline void             sendEventToAllObjects                               ( const AIVariable& hScene, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10, const AIVariable& vParam11 ) const { S3DX_DECLARE_VIN_15( hScene, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10, vParam11 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.sendEventToAllObjects ( 15, vIn, NULL ) ; }
            inline void             sendEventToAllObjects                               ( const AIVariable& hScene, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10, const AIVariable& vParam11, const AIVariable& vParam12 ) const { S3DX_DECLARE_VIN_16( hScene, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10, vParam11, vParam12 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->scene.sendEventToAllObjects ( 16, vIn, NULL ) ; }
        } ;

        struct SensorPackage
        {
            // Constants
            //
            const AIVariable        kShapeTypeBox       ;
            const AIVariable        kShapeTypeSphere    ;

            SensorPackage           (   ):
            kShapeTypeBox           ( 2 ),
            kShapeTypeSphere        ( 1 )
            { }

            // Functions
            //
            inline AIVariable       getCount                                            ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sensor.getCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setActiveAt                                         ( const AIVariable& hObject, const AIVariable& nIndex, const AIVariable& bActive ) const { S3DX_DECLARE_VIN_03( hObject, nIndex, bActive ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sensor.setActiveAt ( 3, vIn, NULL ) ; }
            inline AIVariable       isActiveAt                                          ( const AIVariable& hObject, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hObject, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sensor.isActiveAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             setAllActive                                        ( const AIVariable& hObject, const AIVariable& bActive ) const { S3DX_DECLARE_VIN_02( hObject, bActive ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sensor.setAllActive ( 2, vIn, NULL ) ; }
            inline void             removeAll                                           ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sensor.removeAll ( 1, vIn, NULL ) ; }
            inline void             removeAt                                            ( const AIVariable& hObject, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hObject, nIndex ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sensor.removeAt ( 2, vIn, NULL ) ; }
            inline AIVariable       add                                                 ( const AIVariable& hObject, const AIVariable& kShapeType ) const { S3DX_DECLARE_VIN_02( hObject, kShapeType ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sensor.add ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getIDAt                                             ( const AIVariable& hObject, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hObject, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sensor.getIDAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             setIDAt                                             ( const AIVariable& hObject, const AIVariable& nIndex, const AIVariable& nID ) const { S3DX_DECLARE_VIN_03( hObject, nIndex, nID ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sensor.setIDAt ( 3, vIn, NULL ) ; }
            inline AIVariable       getShapeTypeAt                                      ( const AIVariable& hObject, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hObject, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sensor.getShapeTypeAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             setSphereCenterAt                                   ( const AIVariable& hObject, const AIVariable& nIndex, const AIVariable& x, const AIVariable& y, const AIVariable& z, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_06( hObject, nIndex, x, y, z, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sensor.setSphereCenterAt ( 6, vIn, NULL ) ; }
            inline void             setSphereRadiusAt                                   ( const AIVariable& hObject, const AIVariable& nIndex, const AIVariable& nRadius ) const { S3DX_DECLARE_VIN_03( hObject, nIndex, nRadius ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sensor.setSphereRadiusAt ( 3, vIn, NULL ) ; }
            inline AIVariables<3>   getSphereCenterAt                                   ( const AIVariable& hObject, const AIVariable& nIndex, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_03( hObject, nIndex, kSpace ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sensor.getSphereCenterAt ( 3, vIn, vOut ) ; return vOut ; }
            inline AIVariable       getSphereRadiusAt                                   ( const AIVariable& hObject, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hObject, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sensor.getSphereRadiusAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             setBoxCenterAt                                      ( const AIVariable& hObject, const AIVariable& nIndex, const AIVariable& x, const AIVariable& y, const AIVariable& z, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_06( hObject, nIndex, x, y, z, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sensor.setBoxCenterAt ( 6, vIn, NULL ) ; }
            inline void             setBoxSizeAt                                        ( const AIVariable& hObject, const AIVariable& nIndex, const AIVariable& sx, const AIVariable& sy, const AIVariable& sz ) const { S3DX_DECLARE_VIN_05( hObject, nIndex, sx, sy, sz ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sensor.setBoxSizeAt ( 5, vIn, NULL ) ; }
            inline AIVariables<3>   getBoxCenterAt                                      ( const AIVariable& hObject, const AIVariable& nIndex, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_03( hObject, nIndex, kSpace ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sensor.getBoxCenterAt ( 3, vIn, vOut ) ; return vOut ; }
            inline AIVariables<3>   getBoxSizeAt                                        ( const AIVariable& hObject, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hObject, nIndex ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sensor.getBoxSizeAt ( 2, vIn, vOut ) ; return vOut ; }
        } ;

        struct ServerPackage
        {
            // Constants
            //
            const AIVariable        kStatusConnected    ;
            const AIVariable        kStatusPending      ;
            const AIVariable        kStatusNone         ;

            ServerPackage           (   ):
            kStatusConnected        ( 2 ),
            kStatusPending          ( 1 ),
            kStatusNone             ( 0 )
            { }

            // Functions
            //
            inline AIVariable       getStatus                                           ( const AIVariable& hServer ) const { S3DX_DECLARE_VIN_01( hServer ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->server.getStatus ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getName                                             ( const AIVariable& hServer ) const { S3DX_DECLARE_VIN_01( hServer ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->server.getName ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getCurrentPingDelay                                 ( const AIVariable& hServer ) const { S3DX_DECLARE_VIN_01( hServer ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->server.getCurrentPingDelay ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getAveragePingDelay                                 ( const AIVariable& hServer ) const { S3DX_DECLARE_VIN_01( hServer ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->server.getAveragePingDelay ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getSessionCount                                     ( const AIVariable& hServer ) const { S3DX_DECLARE_VIN_01( hServer ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->server.getSessionCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getSessionNameAt                                    ( const AIVariable& hServer, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hServer, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->server.getSessionNameAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getSessionUserCountAt                               ( const AIVariable& hServer, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hServer, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->server.getSessionUserCountAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             setCurrentSession                                   ( const AIVariable& hServer, const AIVariable& sName ) const { S3DX_DECLARE_VIN_02( hServer, sName ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->server.setCurrentSession ( 2, vIn, NULL ) ; }
            inline AIVariable       getCurrentSession                                   ( const AIVariable& hServer ) const { S3DX_DECLARE_VIN_01( hServer ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->server.getCurrentSession ( 1, vIn, &vOut ) ; return vOut ; }

            inline void             sendEvent                                           ( const AIVariable& hServer, const AIVariable& sAIModel, const AIVariable& sEvent ) const { S3DX_DECLARE_VIN_03( hServer, sAIModel, sEvent ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->server.sendEvent ( 3, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hServer, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0 ) const { S3DX_DECLARE_VIN_04( hServer, sAIModel, sEvent, vParam0 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->server.sendEvent ( 4, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hServer, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1 ) const { S3DX_DECLARE_VIN_05( hServer, sAIModel, sEvent, vParam0, vParam1 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->server.sendEvent ( 5, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hServer, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2 ) const { S3DX_DECLARE_VIN_06( hServer, sAIModel, sEvent, vParam0, vParam1, vParam2 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->server.sendEvent ( 6, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hServer, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3 ) const { S3DX_DECLARE_VIN_07( hServer, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->server.sendEvent ( 7, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hServer, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4 ) const { S3DX_DECLARE_VIN_08( hServer, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->server.sendEvent ( 8, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hServer, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5 ) const { S3DX_DECLARE_VIN_09( hServer, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->server.sendEvent ( 9, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hServer, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6 ) const { S3DX_DECLARE_VIN_10( hServer, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->server.sendEvent ( 10, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hServer, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7 ) const { S3DX_DECLARE_VIN_11( hServer, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->server.sendEvent ( 11, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hServer, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8 ) const { S3DX_DECLARE_VIN_12( hServer, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->server.sendEvent ( 12, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hServer, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9 ) const { S3DX_DECLARE_VIN_13( hServer, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->server.sendEvent ( 13, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hServer, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10 ) const { S3DX_DECLARE_VIN_14( hServer, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->server.sendEvent ( 14, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hServer, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10, const AIVariable& vParam11 ) const { S3DX_DECLARE_VIN_15( hServer, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10, vParam11 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->server.sendEvent ( 15, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hServer, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10, const AIVariable& vParam11, const AIVariable& vParam12 ) const { S3DX_DECLARE_VIN_16( hServer, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10, vParam11, vParam12 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->server.sendEvent ( 16, vIn, NULL ) ; }
        } ;

        struct SessionPackage
        {
            // Constants
            //
            const AIVariable        kStatusConnected    ;
            const AIVariable        kStatusPending      ;
            const AIVariable        kStatusNone         ;

            SessionPackage          (   ):
            kStatusConnected        ( 2 ),
            kStatusPending          ( 1 ),
            kStatusNone             ( 0 )
            { }

            // Functions
            //
            inline AIVariable       getStatus                                           ( const AIVariable& hSession ) const { S3DX_DECLARE_VIN_01( hSession ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->session.getStatus ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getName                                             ( const AIVariable& hSession ) const { S3DX_DECLARE_VIN_01( hSession ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->session.getName ( 1, vIn, &vOut ) ; return vOut ; }
        } ;

        struct SfxPackage
        {
            // Functions
            //
            inline AIVariable       getParticleEmitterCount                             ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sfx.getParticleEmitterCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             startParticleEmitterAt                              ( const AIVariable& hObject, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hObject, nIndex ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sfx.startParticleEmitterAt ( 2, vIn, NULL ) ; }
            inline void             startAllParticleEmitters                            ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sfx.startAllParticleEmitters ( 1, vIn, NULL ) ; }
            inline void             stopParticleEmitterAt                               ( const AIVariable& hObject, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hObject, nIndex ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sfx.stopParticleEmitterAt ( 2, vIn, NULL ) ; }
            inline void             stopAllParticleEmitters                             ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sfx.stopAllParticleEmitters ( 1, vIn, NULL ) ; }
            inline void             pauseParticleEmitterAt                              ( const AIVariable& hObject, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hObject, nIndex ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sfx.pauseParticleEmitterAt ( 2, vIn, NULL ) ; }
            inline void             pauseAllParticleEmitters                            ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sfx.pauseAllParticleEmitters ( 1, vIn, NULL ) ; }
            inline void             setParticleEmitterTranslationAt                     ( const AIVariable& hObject, const AIVariable& nIndex, const AIVariable& x, const AIVariable& y, const AIVariable& z, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_06( hObject, nIndex, x, y, z, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sfx.setParticleEmitterTranslationAt ( 6, vIn, NULL ) ; }
            inline void             setParticleEmitterRotationAt                        ( const AIVariable& hObject, const AIVariable& nIndex, const AIVariable& x, const AIVariable& y, const AIVariable& z, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_06( hObject, nIndex, x, y, z, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sfx.setParticleEmitterRotationAt ( 6, vIn, NULL ) ; }
            inline void             setParticleEmitterUniformScaleAt                    ( const AIVariable& hObject, const AIVariable& nIndex, const AIVariable& nScale ) const { S3DX_DECLARE_VIN_03( hObject, nIndex, nScale ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sfx.setParticleEmitterUniformScaleAt ( 3, vIn, NULL ) ; }
            inline void             setParticleEmitterGenerationRateAt                  ( const AIVariable& hObject, const AIVariable& nIndex, const AIVariable& nRate ) const { S3DX_DECLARE_VIN_03( hObject, nIndex, nRate ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sfx.setParticleEmitterGenerationRateAt ( 3, vIn, NULL ) ; }
            inline void             setParticleEmitterLifeTimeFactorAt                  ( const AIVariable& hObject, const AIVariable& nIndex, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_03( hObject, nIndex, nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sfx.setParticleEmitterLifeTimeFactorAt ( 3, vIn, NULL ) ; }
            inline void             setParticleEmitterInitialSpeedFactorAt              ( const AIVariable& hObject, const AIVariable& nIndex, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_03( hObject, nIndex, nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sfx.setParticleEmitterInitialSpeedFactorAt ( 3, vIn, NULL ) ; }
            inline AIVariable       getParticleEmitterUniformScaleAt                    ( const AIVariable& hObject, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hObject, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sfx.getParticleEmitterUniformScaleAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getParticleEmitterGenerationRateAt                  ( const AIVariable& hObject, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hObject, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sfx.getParticleEmitterGenerationRateAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getParticleEmitterLifeTimeFactorAt                  ( const AIVariable& hObject, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hObject, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sfx.getParticleEmitterLifeTimeFactorAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getParticleEmitterInitialSpeedFactorAt              ( const AIVariable& hObject, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hObject, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sfx.getParticleEmitterInitialSpeedFactorAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getParticleEmitterAliveParticleCountAt              ( const AIVariable& hObject, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hObject, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sfx.getParticleEmitterAliveParticleCountAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getTrailCount                                       ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sfx.getTrailCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setTrailAnchor0At                                   ( const AIVariable& hObject, const AIVariable& nIndex, const AIVariable& x, const AIVariable& y, const AIVariable& z, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_06( hObject, nIndex, x, y, z, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sfx.setTrailAnchor0At ( 6, vIn, NULL ) ; }
            inline void             setTrailAnchor1At                                   ( const AIVariable& hObject, const AIVariable& nIndex, const AIVariable& x, const AIVariable& y, const AIVariable& z, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_06( hObject, nIndex, x, y, z, kSpace ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sfx.setTrailAnchor1At ( 6, vIn, NULL ) ; }
            inline void             startTrailAt                                        ( const AIVariable& hObject, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hObject, nIndex ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sfx.startTrailAt ( 2, vIn, NULL ) ; }
            inline void             pauseTrailAt                                        ( const AIVariable& hObject, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hObject, nIndex ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sfx.pauseTrailAt ( 2, vIn, NULL ) ; }
            inline void             stopTrailAt                                         ( const AIVariable& hObject, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hObject, nIndex ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sfx.stopTrailAt ( 2, vIn, NULL ) ; }
            inline void             startAllTrails                                      ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sfx.startAllTrails ( 1, vIn, NULL ) ; }
            inline void             pauseAllTrails                                      ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sfx.pauseAllTrails ( 1, vIn, NULL ) ; }
            inline void             stopAllTrails                                       ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sfx.stopAllTrails ( 1, vIn, NULL ) ; }
        } ;

        struct ShapePackage
        {
            // Constants
            //
            const AIVariable        kCurveTypePolyLine      ;
            const AIVariable        kCurveTypeBSpline       ;
            const AIVariable        kCurveTypeBezier        ;
            const AIVariable        kCurveTypeCatmullRom    ;
            const AIVariable        kMapTypeUnknown         ;
            const AIVariable        kMapTypeTexture         ;
            const AIVariable        kMapTypeTextureClip     ;
            const AIVariable        kMapTypeRenderMap       ;
            const AIVariable        kMapTypePixelMap        ;
            const AIVariable        kMapTypeMovie           ;

            ShapePackage            (   ):
            kCurveTypePolyLine      ( 0 ),
            kCurveTypeBSpline       ( 1 ),
            kCurveTypeBezier        ( 2 ),
            kCurveTypeCatmullRom    ( 3 ),
            kMapTypeUnknown         ( 0 ),
            kMapTypeTexture         ( 1 ),
            kMapTypeTextureClip     ( 2 ),
            kMapTypeRenderMap       ( 3 ),
            kMapTypePixelMap        ( 5 ),
            kMapTypeMovie           ( 4 )
            { }

            // Functions
            //
            inline void             setMeshOpacity                                          ( const AIVariable& hObject, const AIVariable& nOpacity ) const { S3DX_DECLARE_VIN_02( hObject, nOpacity ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.setMeshOpacity ( 2, vIn, NULL ) ; }
            inline AIVariable       getMeshOpacity                                          ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshOpacity ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getMeshSubsetCount                                      ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshSubsetCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setMeshSubsetMaterial                                   ( const AIVariable& hObject, const AIVariable& nSubsetIndex, const AIVariable& sMaterialName ) const { S3DX_DECLARE_VIN_03( hObject, nSubsetIndex, sMaterialName ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.setMeshSubsetMaterial ( 3, vIn, NULL ) ; }
            inline AIVariable       getMeshSubsetMaterialName                               ( const AIVariable& hObject, const AIVariable& nSubsetIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSubsetIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshSubsetMaterialName ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             setMeshMaterial                                         ( const AIVariable& hObject, const AIVariable& sMaterialName ) const { S3DX_DECLARE_VIN_02( hObject, sMaterialName ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.setMeshMaterial ( 2, vIn, NULL ) ; }
            inline AIVariable       compareMeshSubsetMaterial                               ( const AIVariable& hObject, const AIVariable& nSubsetIndex, const AIVariable& sMaterialName ) const { S3DX_DECLARE_VIN_03( hObject, nSubsetIndex, sMaterialName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.compareMeshSubsetMaterial ( 3, vIn, &vOut ) ; return vOut ; }
            inline void             enableMeshFrustumCulling                                ( const AIVariable& hObject, const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_02( hObject, bEnable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.enableMeshFrustumCulling ( 2, vIn, NULL ) ; }
            inline void             overrideMeshSubsetMaterialEmissive                      ( const AIVariable& hObject, const AIVariable& nSubsetIndex, const AIVariable& nRed, const AIVariable& nGreen, const AIVariable& nBlue, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_06( hObject, nSubsetIndex, nRed, nGreen, nBlue, nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.overrideMeshSubsetMaterialEmissive ( 3, vIn, NULL ) ; }
            inline void             overrideMeshSubsetMaterialAmbient                       ( const AIVariable& hObject, const AIVariable& nSubsetIndex, const AIVariable& nRed, const AIVariable& nGreen, const AIVariable& nBlue, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_06( hObject, nSubsetIndex, nRed, nGreen, nBlue, nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.overrideMeshSubsetMaterialAmbient ( 6, vIn, NULL ) ; }
            inline void             overrideMeshSubsetMaterialDiffuse                       ( const AIVariable& hObject, const AIVariable& nSubsetIndex, const AIVariable& nRed, const AIVariable& nGreen, const AIVariable& nBlue, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_06( hObject, nSubsetIndex, nRed, nGreen, nBlue, nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.overrideMeshSubsetMaterialDiffuse ( 6, vIn, NULL ) ; }
            inline void             overrideMeshSubsetMaterialSpecular                      ( const AIVariable& hObject, const AIVariable& nSubsetIndex, const AIVariable& nRed, const AIVariable& nGreen, const AIVariable& nBlue, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_06( hObject, nSubsetIndex, nRed, nGreen, nBlue, nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.overrideMeshSubsetMaterialSpecular ( 6, vIn, NULL ) ; }
            inline void             overrideMeshSubsetMaterialOpacity                       ( const AIVariable& hObject, const AIVariable& nSubsetIndex, const AIVariable& nOpacity, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_04( hObject, nSubsetIndex, nOpacity, nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.overrideMeshSubsetMaterialOpacity ( 4, vIn, NULL ) ; }
            inline void             overrideMeshSubsetMaterialOpacityThreshold              ( const AIVariable& hObject, const AIVariable& nSubsetIndex, const AIVariable& nOpacity, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_04( hObject, nSubsetIndex, nOpacity, nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.overrideMeshSubsetMaterialOpacityThreshold ( 4, vIn, NULL ) ; }
            inline void             overrideMeshSubsetMaterialEffectIntensity               ( const AIVariable& hObject, const AIVariable& nSubsetIndex, const AIVariable& nIntensity, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_04( hObject, nSubsetIndex, nIntensity, nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.overrideMeshSubsetMaterialEffectIntensity ( 4, vIn, NULL ) ; }
            inline AIVariables<4>   getMeshSubsetMaterialEmissiveOverride                   ( const AIVariable& hObject, const AIVariable& nSubsetIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSubsetIndex ) ; AIVariables<4> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshSubsetMaterialEmissiveOverride ( 2, vIn, vOut ) ; return vOut ; }
            inline AIVariables<4>   getMeshSubsetMaterialAmbientOverride                    ( const AIVariable& hObject, const AIVariable& nSubsetIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSubsetIndex ) ; AIVariables<4> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshSubsetMaterialAmbientOverride ( 2, vIn, vOut ) ; return vOut ; }
            inline AIVariables<4>   getMeshSubsetMaterialDiffuseOverride                    ( const AIVariable& hObject, const AIVariable& nSubsetIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSubsetIndex ) ; AIVariables<4> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshSubsetMaterialDiffuseOverride ( 2, vIn, vOut ) ; return vOut ; }
            inline AIVariables<4>   getMeshSubsetMaterialSpecularOverride                   ( const AIVariable& hObject, const AIVariable& nSubsetIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSubsetIndex ) ; AIVariables<4> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshSubsetMaterialSpecularOverride ( 2, vIn, vOut ) ; return vOut ; }
            inline AIVariables<2>   getMeshSubsetMaterialOpacityOverride                    ( const AIVariable& hObject, const AIVariable& nSubsetIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSubsetIndex ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshSubsetMaterialOpacityOverride ( 2, vIn, vOut ) ; return vOut ; }
            inline AIVariables<2>   getMeshSubsetMaterialOpacityThresholdOverride           ( const AIVariable& hObject, const AIVariable& nSubsetIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSubsetIndex ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshSubsetMaterialOpacityThresholdOverride ( 2, vIn, vOut ) ; return vOut ; }
            inline AIVariables<2>   getMeshSubsetMaterialEffectIntensityOverride            ( const AIVariable& hObject, const AIVariable& nSubsetIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSubsetIndex ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshSubsetMaterialEffectIntensityOverride ( 2, vIn, vOut ) ; return vOut ; }
            inline void             overrideMeshMaterialEmissive                            ( const AIVariable& hObject, const AIVariable& nRed, const AIVariable& nGreen, const AIVariable& nBlue, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_05( hObject, nRed, nGreen, nBlue, nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.overrideMeshMaterialEmissive ( 5, vIn, NULL ) ; }
            inline void             overrideMeshMaterialAmbient                             ( const AIVariable& hObject, const AIVariable& nRed, const AIVariable& nGreen, const AIVariable& nBlue, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_05( hObject, nRed, nGreen, nBlue, nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.overrideMeshMaterialAmbient ( 5, vIn, NULL ) ; }
            inline void             overrideMeshMaterialDiffuse                             ( const AIVariable& hObject, const AIVariable& nRed, const AIVariable& nGreen, const AIVariable& nBlue, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_05( hObject, nRed, nGreen, nBlue, nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.overrideMeshMaterialDiffuse ( 5, vIn, NULL ) ; }
            inline void             overrideMeshMaterialSpecular                            ( const AIVariable& hObject, const AIVariable& nRed, const AIVariable& nGreen, const AIVariable& nBlue, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_05( hObject, nRed, nGreen, nBlue, nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.overrideMeshMaterialSpecular ( 5, vIn, NULL ) ; }
            inline void             overrideMeshSubsetMaterialEffectMap0                    ( const AIVariable& hObject, const AIVariable& nSubsetIndex, const AIVariable& sMapName, const AIVariable& kMapType ) const { S3DX_DECLARE_VIN_04( hObject, nSubsetIndex, sMapName, kMapType ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.overrideMeshSubsetMaterialEffectMap0 ( 4, vIn, NULL ) ; }
            inline void             overrideMeshMaterialEffectMap0                          ( const AIVariable& hObject, const AIVariable& sMapName, const AIVariable& kMapType ) const { S3DX_DECLARE_VIN_03( hObject, sMapName, kMapType ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.overrideMeshMaterialEffectMap0 ( 3, vIn, NULL ) ; }
            inline void             overrideMeshSubsetMaterialEffectMap1                    ( const AIVariable& hObject, const AIVariable& nSubsetIndex, const AIVariable& sMapName, const AIVariable& kMapType ) const { S3DX_DECLARE_VIN_04( hObject, nSubsetIndex, sMapName, kMapType ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.overrideMeshSubsetMaterialEffectMap1 ( 4, vIn, NULL ) ; }
            inline void             overrideMeshMaterialEffectMap1                          ( const AIVariable& hObject, const AIVariable& sMapName, const AIVariable& kMapType ) const { S3DX_DECLARE_VIN_03( hObject, sMapName, kMapType ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.overrideMeshMaterialEffectMap1 ( 3, vIn, NULL ) ; }
            inline void             overrideMeshSubsetMaterialNormalMap                     ( const AIVariable& hObject, const AIVariable& nSubsetIndex, const AIVariable& sMapName, const AIVariable& kMapType ) const { S3DX_DECLARE_VIN_04( hObject, nSubsetIndex, sMapName, kMapType ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.overrideMeshSubsetMaterialNormalMap ( 4, vIn, NULL ) ; }
            inline void             overrideMeshMaterialNormalMap                           ( const AIVariable& hObject, const AIVariable& sMapName, const AIVariable& kMapType ) const { S3DX_DECLARE_VIN_03( hObject, sMapName, kMapType ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.overrideMeshMaterialNormalMap ( 3, vIn, NULL ) ; }
            inline void             overrideMeshSubsetMaterialSpecularMap                   ( const AIVariable& hObject, const AIVariable& nSubsetIndex, const AIVariable& sMapName, const AIVariable& kMapType ) const { S3DX_DECLARE_VIN_04( hObject, nSubsetIndex, sMapName, kMapType ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.overrideMeshSubsetMaterialSpecularMap ( 4, vIn, NULL ) ; }
            inline void             overrideMeshMaterialSpecularMap                         ( const AIVariable& hObject, const AIVariable& sMapName, const AIVariable& kMapType ) const { S3DX_DECLARE_VIN_03( hObject, sMapName, kMapType ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.overrideMeshMaterialSpecularMap ( 3, vIn, NULL ) ; }
            inline AIVariables<2>   getMeshSubsetMaterialEffectMap0                         ( const AIVariable& hObject, const AIVariable& nSubsetIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSubsetIndex ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshSubsetMaterialEffectMap0 ( 2, vIn, vOut ) ; return vOut ; }
            inline AIVariables<2>   getMeshSubsetMaterialEffectMap1                         ( const AIVariable& hObject, const AIVariable& nSubsetIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSubsetIndex ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshSubsetMaterialEffectMap1 ( 2, vIn, vOut ) ; return vOut ; }
            inline AIVariables<2>   getMeshSubsetMaterialNormalMap                          ( const AIVariable& hObject, const AIVariable& nSubsetIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSubsetIndex ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshSubsetMaterialNormalMap ( 2, vIn, vOut ) ; return vOut ; }
            inline AIVariables<2>   getMeshSubsetMaterialSpecularMap                        ( const AIVariable& hObject, const AIVariable& nSubsetIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSubsetIndex ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshSubsetMaterialSpecularMap ( 2, vIn, vOut ) ; return vOut ; }
            inline AIVariables<2>   getMeshSubsetMaterialEffectMap0Override                 ( const AIVariable& hObject, const AIVariable& nSubsetIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSubsetIndex ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshSubsetMaterialEffectMap0Override ( 2, vIn, vOut ) ; return vOut ; }
            inline AIVariables<2>   getMeshSubsetMaterialEffectMap1Override                 ( const AIVariable& hObject, const AIVariable& nSubsetIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSubsetIndex ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshSubsetMaterialEffectMap1Override ( 2, vIn, vOut ) ; return vOut ; }
            inline AIVariables<2>   getMeshSubsetMaterialNormalMapOverride                  ( const AIVariable& hObject, const AIVariable& nSubsetIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSubsetIndex ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshSubsetMaterialNormalMapOverride ( 2, vIn, vOut ) ; return vOut ; }
            inline AIVariables<2>   getMeshSubsetMaterialSpecularMapOverride                ( const AIVariable& hObject, const AIVariable& nSubsetIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSubsetIndex ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshSubsetMaterialSpecularMapOverride ( 2, vIn, vOut ) ; return vOut ; }
            inline void             setMeshSubsetMaterialEffectMap0AdditionalUVOffset       ( const AIVariable& hObject, const AIVariable& nSubsetIndex, const AIVariable& u, const AIVariable& v ) const { S3DX_DECLARE_VIN_04( hObject, nSubsetIndex, u, v ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.setMeshSubsetMaterialEffectMap0AdditionalUVOffset ( 4, vIn, NULL ) ; }
            inline void             setMeshSubsetMaterialEffectMap0AdditionalUVScale        ( const AIVariable& hObject, const AIVariable& nSubsetIndex, const AIVariable& u, const AIVariable& v ) const { S3DX_DECLARE_VIN_04( hObject, nSubsetIndex, u, v ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.setMeshSubsetMaterialEffectMap0AdditionalUVScale ( 4, vIn, NULL ) ; }
            inline void             setMeshSubsetMaterialEffectMap0AdditionalUVRotation     ( const AIVariable& hObject, const AIVariable& nSubsetIndex, const AIVariable& nCenterU, const AIVariable& nCenterV, const AIVariable& nAngle ) const { S3DX_DECLARE_VIN_05( hObject, nSubsetIndex, nCenterU, nCenterV, nAngle ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.setMeshSubsetMaterialEffectMap0AdditionalUVRotation ( 5, vIn, NULL ) ; }
            inline void             setMeshSubsetMaterialEffectMap1AdditionalUVOffset       ( const AIVariable& hObject, const AIVariable& nSubsetIndex, const AIVariable& u, const AIVariable& v ) const { S3DX_DECLARE_VIN_04( hObject, nSubsetIndex, u, v ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.setMeshSubsetMaterialEffectMap1AdditionalUVOffset ( 4, vIn, NULL ) ; }
            inline void             setMeshSubsetMaterialEffectMap1AdditionalUVScale        ( const AIVariable& hObject, const AIVariable& nSubsetIndex, const AIVariable& u, const AIVariable& v ) const { S3DX_DECLARE_VIN_04( hObject, nSubsetIndex, u, v ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.setMeshSubsetMaterialEffectMap1AdditionalUVScale ( 4, vIn, NULL ) ; }
            inline void             setMeshSubsetMaterialEffectMap1AdditionalUVRotation     ( const AIVariable& hObject, const AIVariable& nSubsetIndex, const AIVariable& nCenterU, const AIVariable& nCenterV, const AIVariable& nAngle ) const { S3DX_DECLARE_VIN_05( hObject, nSubsetIndex, nCenterU, nCenterV, nAngle ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.setMeshSubsetMaterialEffectMap1AdditionalUVRotation ( 5, vIn, NULL ) ; }
            inline AIVariables<2>   getMeshSubsetMaterialEffectMap0AdditionalUVOffset       ( const AIVariable& hObject, const AIVariable& nSubsetIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSubsetIndex ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshSubsetMaterialEffectMap0AdditionalUVOffset ( 2, vIn, vOut ) ; return vOut ; }
            inline AIVariables<2>   getMeshSubsetMaterialEffectMap0AdditionalUVScale        ( const AIVariable& hObject, const AIVariable& nSubsetIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSubsetIndex ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshSubsetMaterialEffectMap0AdditionalUVScale ( 2, vIn, vOut ) ; return vOut ; }
            inline AIVariables<3>   getMeshSubsetMaterialEffectMap0AdditionalUVRotation     ( const AIVariable& hObject, const AIVariable& nSubsetIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSubsetIndex ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshSubsetMaterialEffectMap0AdditionalUVRotation ( 2, vIn, vOut ) ; return vOut ; }
            inline AIVariables<2>   getMeshSubsetMaterialEffectMap1AdditionalUVOffset       ( const AIVariable& hObject, const AIVariable& nSubsetIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSubsetIndex ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshSubsetMaterialEffectMap1AdditionalUVOffset ( 2, vIn, vOut ) ; return vOut ; }
            inline AIVariables<2>   getMeshSubsetMaterialEffectMap1AdditionalUVScale        ( const AIVariable& hObject, const AIVariable& nSubsetIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSubsetIndex ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshSubsetMaterialEffectMap1AdditionalUVScale ( 2, vIn, vOut ) ; return vOut ; }
            inline AIVariables<3>   getMeshSubsetMaterialEffectMap1AdditionalUVRotation     ( const AIVariable& hObject, const AIVariable& nSubsetIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSubsetIndex ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshSubsetMaterialEffectMap1AdditionalUVRotation ( 2, vIn, vOut ) ; return vOut ; }
            inline void             playMeshSubsetMaterialEffectMap0Movie                   ( const AIVariable& hObject, const AIVariable& nSubsetIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSubsetIndex ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.playMeshSubsetMaterialEffectMap0Movie ( 2, vIn, NULL ) ; }
            inline void             pauseMeshSubsetMaterialEffectMap0Movie                  ( const AIVariable& hObject, const AIVariable& nSubsetIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSubsetIndex ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.pauseMeshSubsetMaterialEffectMap0Movie ( 2, vIn, NULL ) ; }
            inline void             stopMeshSubsetMaterialEffectMap0Movie                   ( const AIVariable& hObject, const AIVariable& nSubsetIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSubsetIndex ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.stopMeshSubsetMaterialEffectMap0Movie ( 2, vIn, NULL ) ; }
            inline AIVariable       getMeshSubsetMaterialEffectMap0MovieBufferingProgress   ( const AIVariable& hObject, const AIVariable& nSubsetIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSubsetIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshSubsetMaterialEffectMap0MovieBufferingProgress ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getMeshSubsetMaterialEffectMap0MoviePlaybackProgress    ( const AIVariable& hObject, const AIVariable& nSubsetIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSubsetIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshSubsetMaterialEffectMap0MoviePlaybackProgress ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getMeshSubsetMaterialEffectMap0MoviePlaybackCursor      ( const AIVariable& hObject, const AIVariable& nSubsetIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSubsetIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshSubsetMaterialEffectMap0MoviePlaybackCursor ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             setMeshSubsetMaterialEffectMap0MovieTransparentColor    ( const AIVariable& hObject, const AIVariable& nSubsetIndex, const AIVariable& nRed, const AIVariable& nGreen, const AIVariable& nBlue, const AIVariable& nTolerance ) const { S3DX_DECLARE_VIN_06( hObject, nSubsetIndex, nRed, nGreen, nBlue, nTolerance ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.setMeshSubsetMaterialEffectMap0MovieTransparentColor ( 6, vIn, NULL ) ; }
            inline AIVariable       getMesh                                                 ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMesh ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getMeshName                                             ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshName ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getMeshTriangleCount                                    ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshTriangleCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getMeshVertexCount                                      ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getMeshVertexCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getSkeletonName                                         ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getSkeletonName ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getSkeletonJointCount                                   ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getSkeletonJointCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getSkeletonJointNameAt                                  ( const AIVariable& hObject, const AIVariable& iJointIndex ) const { S3DX_DECLARE_VIN_02( hObject, iJointIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getSkeletonJointNameAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       createRuntimeMesh                                       ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.createRuntimeMesh ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             overrideSkeletonJointTranslation                        ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& tx, const AIVariable& ty, const AIVariable& tz, const AIVariable& kSpace, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_07( hObject, sJointName, tx, ty, tz, kSpace, nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.overrideSkeletonJointTranslation ( 7, vIn, NULL ) ; }
            inline void             overrideSkeletonJointRotation                           ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& rx, const AIVariable& ry, const AIVariable& rz, const AIVariable& kSpace, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_07( hObject, sJointName, rx, ry, rz, kSpace, nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.overrideSkeletonJointRotation ( 7, vIn, NULL ) ; }
            inline void             setSkeletonJointCustomScale                             ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& sx, const AIVariable& sy, const AIVariable& sz ) const { S3DX_DECLARE_VIN_05( hObject, sJointName, sx, sy, sz ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.setSkeletonJointCustomScale ( 5, vIn, NULL ) ; }
            inline AIVariables<3>   getSkeletonJointTranslation                             ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_03( hObject, sJointName, kSpace ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getSkeletonJointTranslation ( 3, vIn, vOut ) ; return vOut ; }
            inline AIVariables<3>   getSkeletonJointRotation                                ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_03( hObject, sJointName, kSpace ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getSkeletonJointRotation ( 3, vIn, vOut ) ; return vOut ; }
            inline AIVariables<3>   getSkeletonJointXAxis                                   ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_03( hObject, sJointName, kSpace ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getSkeletonJointXAxis ( 3, vIn, vOut ) ; return vOut ; }
            inline AIVariables<3>   getSkeletonJointYAxis                                   ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_03( hObject, sJointName, kSpace ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getSkeletonJointYAxis ( 3, vIn, vOut ) ; return vOut ; }
            inline AIVariables<3>   getSkeletonJointZAxis                                   ( const AIVariable& hObject, const AIVariable& sJointName, const AIVariable& kSpace ) const { S3DX_DECLARE_VIN_03( hObject, sJointName, kSpace ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getSkeletonJointZAxis ( 3, vIn, vOut ) ; return vOut ; }
            inline AIVariable       getSkeletonJointParentJointName                         ( const AIVariable& hObject, const AIVariable& sJointName ) const { S3DX_DECLARE_VIN_02( hObject, sJointName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getSkeletonJointParentJointName ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             addSkeletonCloneModifier                                ( const AIVariable& hObject, const AIVariable& hMasterObject ) const { S3DX_DECLARE_VIN_02( hObject, hMasterObject ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.addSkeletonCloneModifier ( 2, vIn, NULL ) ; }
            inline AIVariable       addCurve                                                ( const AIVariable& hObject, const AIVariable& kCurveType ) const { S3DX_DECLARE_VIN_02( hObject, kCurveType ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.addCurve ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             removeCurve                                             ( const AIVariable& hObject, const AIVariable& nCurveIndex ) const { S3DX_DECLARE_VIN_02( hObject, nCurveIndex ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.removeCurve ( 2, vIn, NULL ) ; }
            inline AIVariable       getCurveCount                                           ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.addCurve ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             addCurvePoint                                           ( const AIVariable& hObject, const AIVariable& nCurveIndex, const AIVariable& x, const AIVariable& y, const AIVariable& z ) const { S3DX_DECLARE_VIN_05( hObject, nCurveIndex, x, y, z ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.addCurvePoint ( 5, vIn, NULL ) ; }
            inline void             removeCurvePoint                                        ( const AIVariable& hObject, const AIVariable& nCurveIndex, const AIVariable& nPointIndex ) const { S3DX_DECLARE_VIN_03( hObject, nCurveIndex, nPointIndex ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.removeCurvePoint ( 3, vIn, NULL ) ; }
            inline AIVariable       getCurvePointCount                                      ( const AIVariable& hObject, const AIVariable& nCurveIndex ) const { S3DX_DECLARE_VIN_02( hObject, nCurveIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getCurvePointCount ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariables<3>   getCurvePoint                                           ( const AIVariable& hObject, const AIVariable& nCurveIndex, const AIVariable& nPointIndex ) const { S3DX_DECLARE_VIN_03( hObject, nCurveIndex, nPointIndex ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getCurvePoint ( 3, vIn, vOut ) ; return vOut ; }
            inline void             setCurvePoint                                           ( const AIVariable& hObject, const AIVariable& nCurveIndex, const AIVariable& nPointIndex, const AIVariable& x, const AIVariable& y, const AIVariable& z ) const { S3DX_DECLARE_VIN_06( hObject, nCurveIndex, nPointIndex, x, y, z ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.setCurvePoint ( 6, vIn, NULL ) ; }
            inline void             setCurveStartColor                                      ( const AIVariable& hObject, const AIVariable& nCurveIndex, const AIVariable& nRed, const AIVariable& nGreen, const AIVariable& nBlue ) const { S3DX_DECLARE_VIN_05( hObject, nCurveIndex, nRed, nGreen, nBlue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.setCurveStartColor ( 5, vIn, NULL ) ; }
            inline void             setCurveEndColor                                        ( const AIVariable& hObject, const AIVariable& nCurveIndex, const AIVariable& nRed, const AIVariable& nGreen, const AIVariable& nBlue ) const { S3DX_DECLARE_VIN_05( hObject, nCurveIndex, nRed, nGreen, nBlue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.setCurveEndColor ( 5, vIn, NULL ) ; }
            inline void             setCurveStartOpacity                                    ( const AIVariable& hObject, const AIVariable& nCurveIndex, const AIVariable& nOpacity ) const { S3DX_DECLARE_VIN_03( hObject, nCurveIndex, nOpacity ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.setCurveStartOpacity ( 3, vIn, NULL ) ; }
            inline void             setCurveEndOpacity                                      ( const AIVariable& hObject, const AIVariable& nCurveIndex, const AIVariable& nOpacity ) const { S3DX_DECLARE_VIN_03( hObject, nCurveIndex, nOpacity ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.setCurveEndOpacity ( 3, vIn, NULL ) ; }
            inline AIVariables<3>   getCurveStartColor                                      ( const AIVariable& hObject, const AIVariable& nCurveIndex ) const { S3DX_DECLARE_VIN_02( hObject, nCurveIndex ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getCurveStartColor ( 2, vIn, vOut ) ; return vOut ; }
            inline AIVariables<3>   getCurveEndColor                                        ( const AIVariable& hObject, const AIVariable& nCurveIndex ) const { S3DX_DECLARE_VIN_02( hObject, nCurveIndex ) ; AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getCurveEndColor ( 2, vIn, vOut ) ; return vOut ; }
            inline AIVariables<7>   evaluateCurve                                           ( const AIVariable& hObject, const AIVariable& nCurveIndex, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_03( hObject, nCurveIndex, nFactor ) ; AIVariables<7> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.evaluateCurve ( 3, vIn, vOut ) ; return vOut ; }
            inline AIVariable       getCurveLength                                          ( const AIVariable& hObject, const AIVariable& nCurveIndex ) const { S3DX_DECLARE_VIN_02( hObject, nCurveIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->shape.getCurveLength ( 2, vIn, &vOut ) ; return vOut ; }
        } ;

        struct SoundPackage
        {
            // Functions
            //
            inline void             play                                                ( const AIVariable& hObject, const AIVariable& nSoundIndex, const AIVariable& nVolume, const AIVariable& bLoop, const AIVariable& nPriority ) const { S3DX_DECLARE_VIN_05( hObject, nSoundIndex, nVolume, bLoop, nPriority ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sound.play ( 5, vIn, NULL ) ; }
            inline void             pause                                               ( const AIVariable& hObject, const AIVariable& nSoundIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSoundIndex ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sound.pause ( 2, vIn, NULL ) ; }
            inline void             resume                                              ( const AIVariable& hObject, const AIVariable& nSoundIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSoundIndex ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sound.resume ( 2, vIn, NULL ) ; }
            inline void             stop                                                ( const AIVariable& hObject, const AIVariable& nSoundIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSoundIndex ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sound.stop ( 2, vIn, NULL ) ; }
            inline void             setVolume                                           ( const AIVariable& hObject, const AIVariable& nSoundIndex, const AIVariable& nVolume ) const { S3DX_DECLARE_VIN_03( hObject, nSoundIndex, nVolume ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sound.setVolume ( 3, vIn, NULL ) ; }
            inline void             setPitch                                            ( const AIVariable& hObject, const AIVariable& nSoundIndex, const AIVariable& nPitch ) const { S3DX_DECLARE_VIN_03( hObject, nSoundIndex, nPitch ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sound.setPitch ( 3, vIn, NULL ) ; }
            inline AIVariable       isPlaying                                           ( const AIVariable& hObject, const AIVariable& nSoundIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSoundIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sound.isPlaying ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       isPaused                                            ( const AIVariable& hObject, const AIVariable& nSoundIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSoundIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sound.isPaused ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getPlaybackProgress                                 ( const AIVariable& hObject, const AIVariable& nSoundIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSoundIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sound.getPlaybackProgress ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             setPlaybackProgress                                 ( const AIVariable& hObject, const AIVariable& nSoundIndex, const AIVariable& nValue ) const { S3DX_DECLARE_VIN_03( hObject, nSoundIndex, nValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sound.setPlaybackProgress ( 3, vIn, NULL ) ; }
            inline AIVariable       getName                                             ( const AIVariable& hObject, const AIVariable& nSoundIndex ) const { S3DX_DECLARE_VIN_02( hObject, nSoundIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sound.getName ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             enableSpatialization                                ( const AIVariable& hObject, const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_02( hObject, bEnable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sound.enableSpatialization ( 2, vIn, NULL ) ; }
            inline AIVariable       isSpatializationEnabled                             ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sound.isSpatializationEnabled ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setSpatializationRolloffFactor                      ( const AIVariable& hObject, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_02( hObject, nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sound.setSpatializationRolloffFactor ( 2, vIn, NULL ) ; }
            inline AIVariable       getSpatializationRolloffFactor                      ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sound.getSpatializationRolloffFactor ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setSpatializationReferenceDistance                  ( const AIVariable& hObject, const AIVariable& nDistance ) const { S3DX_DECLARE_VIN_02( hObject, nDistance ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sound.setSpatializationReferenceDistance ( 2, vIn, NULL ) ; }
            inline AIVariable       getSpatializationReferenceDistance                  ( const AIVariable& hObject ) const { S3DX_DECLARE_VIN_01( hObject ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->sound.getSpatializationReferenceDistance ( 1, vIn, &vOut ) ; return vOut ; }
        } ;

        struct StringPackage
        {
            // Functions
            //
            inline AIVariable       isEmpty                                             ( const AIVariable& sString ) const { S3DX_DECLARE_VIN_01( sString ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.isEmpty ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getLength                                           ( const AIVariable& sString ) const { S3DX_DECLARE_VIN_01( sString ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.getLength ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getByte                                             ( const AIVariable& sString, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( sString, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.getByte ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       replace                                             ( const AIVariable& sString, const AIVariable& sPattern0, const AIVariable& sPattern1 ) const { S3DX_DECLARE_VIN_03( sString, sPattern0, sPattern1 ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.replace ( 3, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       contains                                            ( const AIVariable& sString, const AIVariable& sPattern ) const { S3DX_DECLARE_VIN_02( sString, sPattern ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.contains ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       findFirst                                           ( const AIVariable& sString, const AIVariable& sPattern, const AIVariable& nStartIndex ) const { S3DX_DECLARE_VIN_03( sString, sPattern, nStartIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.findFirst ( 3, vIn, &vOut ) ; return vOut ; }
            inline AIVariables<2>   findFirstMatching                                   ( const AIVariable& sString, const AIVariable& sPattern, const AIVariable& nStartIndex ) const { S3DX_DECLARE_VIN_03( sString, sPattern, nStartIndex ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.findFirstMatching ( 3, vIn, vOut ) ; return vOut ; }
            inline AIVariable       explode                                             ( const AIVariable& sString, const AIVariable& tResult, const AIVariable& sDelimiter ) const { S3DX_DECLARE_VIN_03( sString, tResult, sDelimiter ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.explode ( 3, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       lower                                               ( const AIVariable& sString ) const { S3DX_DECLARE_VIN_01( sString ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.lower ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       upper                                               ( const AIVariable& sString ) const { S3DX_DECLARE_VIN_01( sString ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.upper ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       toNumber                                            ( const AIVariable& sString ) const { S3DX_DECLARE_VIN_01( sString ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.toNumber ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getSubString                                        ( const AIVariable& sString, const AIVariable& nStart, const AIVariable& nLength ) const { S3DX_DECLARE_VIN_03( sString, nStart, nLength ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.getSubString ( 3, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       crc32                                               ( const AIVariable& sString ) const { S3DX_DECLARE_VIN_01( sString ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.crc32 ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       md5                                                 ( const AIVariable& sString ) const { S3DX_DECLARE_VIN_01( sString ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.md5 ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       sha1                                                ( const AIVariable& sString ) const { S3DX_DECLARE_VIN_01( sString ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.sha1 ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       hmacsha1                                            ( const AIVariable& sString, const AIVariable& sKey ) const { S3DX_DECLARE_VIN_02( sString, sKey ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.hmacsha1 ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       reverse                                             ( const AIVariable& sString ) const { S3DX_DECLARE_VIN_01( sString ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.reverse ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       compare                                             ( const AIVariable& sString, const AIVariable& sOtherString ) const { S3DX_DECLARE_VIN_02( sString, sOtherString ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.compare ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       encodeHTML                                          ( const AIVariable& sString ) const { S3DX_DECLARE_VIN_01( sString ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.encodeHTML ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       decodeHTML                                          ( const AIVariable& sString ) const { S3DX_DECLARE_VIN_01( sString ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.decodeHTML ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       encodeURL                                           ( const AIVariable& sString ) const { S3DX_DECLARE_VIN_01( sString ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.encodeURL ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       decodeURL                                           ( const AIVariable& sString ) const { S3DX_DECLARE_VIN_01( sString ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.decodeURL ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       encodeBase64                                        ( const AIVariable& sString, const AIVariable& bHexadecimal ) const { S3DX_DECLARE_VIN_02( sString, bHexadecimal ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.encodeBase64 ( 2, vIn, &vOut ) ; return vOut ; }
            
            inline AIVariable       format                                              ( const AIVariable& sFormat ) const { S3DX_DECLARE_VIN_01( sFormat ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.format ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       format                                              ( const AIVariable& sFormat, const AIVariable& v0 ) const { S3DX_DECLARE_VIN_02( sFormat, v0 ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.format ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       format                                              ( const AIVariable& sFormat, const AIVariable& v0, const AIVariable& v1 ) const { S3DX_DECLARE_VIN_03( sFormat, v0, v1 ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.format ( 3, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       format                                              ( const AIVariable& sFormat, const AIVariable& v0, const AIVariable& v1, const AIVariable& v2 ) const { S3DX_DECLARE_VIN_04( sFormat, v0, v1, v2 ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.format ( 4, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       format                                              ( const AIVariable& sFormat, const AIVariable& v0, const AIVariable& v1, const AIVariable& v2, const AIVariable& v3 ) const { S3DX_DECLARE_VIN_05( sFormat, v0, v1, v2, v3 ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.format ( 5, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       format                                              ( const AIVariable& sFormat, const AIVariable& v0, const AIVariable& v1, const AIVariable& v2, const AIVariable& v3, const AIVariable& v4 ) const { S3DX_DECLARE_VIN_06( sFormat, v0, v1, v2, v3, v4 ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.format ( 6, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       format                                              ( const AIVariable& sFormat, const AIVariable& v0, const AIVariable& v1, const AIVariable& v2, const AIVariable& v3, const AIVariable& v4, const AIVariable& v5 ) const { S3DX_DECLARE_VIN_07( sFormat, v0, v1, v2, v3, v4, v5 ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.format ( 7, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       format                                              ( const AIVariable& sFormat, const AIVariable& v0, const AIVariable& v1, const AIVariable& v2, const AIVariable& v3, const AIVariable& v4, const AIVariable& v5, const AIVariable& v6 ) const { S3DX_DECLARE_VIN_08( sFormat, v0, v1, v2, v3, v4, v5, v6 ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.format ( 8, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       format                                              ( const AIVariable& sFormat, const AIVariable& v0, const AIVariable& v1, const AIVariable& v2, const AIVariable& v3, const AIVariable& v4, const AIVariable& v5, const AIVariable& v6, const AIVariable& v7 ) const { S3DX_DECLARE_VIN_09( sFormat, v0, v1, v2, v3, v4, v5, v6, v7 ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.format ( 9, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       format                                              ( const AIVariable& sFormat, const AIVariable& v0, const AIVariable& v1, const AIVariable& v2, const AIVariable& v3, const AIVariable& v4, const AIVariable& v5, const AIVariable& v6, const AIVariable& v7, const AIVariable& v8 ) const { S3DX_DECLARE_VIN_10( sFormat, v0, v1, v2, v3, v4, v5, v6, v7, v8 ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->string.format ( 10, vIn, &vOut ) ; return vOut ; }
        } ;

        struct SystemPackage
        {
            // Constants
            //
            const AIVariable        kOSTypeLinux                                ;
            const AIVariable        kOSTypeMac                                  ;
            const AIVariable        kOSTypeSymbian                              ;
            const AIVariable        kOSTypeWindows                              ;
            const AIVariable        kOSTypeWindowsCE                            ;
            const AIVariable        kOSTypeIPhone                               ;
            const AIVariable        kOSTypeWii                                  ;
            const AIVariable        kOSTypeAngstrom                             ;
            const AIVariable        kOSTypeAndroid                              ;
            const AIVariable        kOSTypePSP                                  ;
            const AIVariable        kOSTypePalm                                 ;
            const AIVariable        kOSTypePS3                                  ;
            const AIVariable        kOSType3DS                                  ;
            const AIVariable        kOSTypeBada                                 ;
            const AIVariable        kOSTypeBrew                                 ;
            const AIVariable        kClientTypeStandalone                       ;
            const AIVariable        kClientTypeEmbedded                         ;
            const AIVariable        kClientTypeEditor                           ;
            const AIVariable        kLanguageUnknown                            ;
            const AIVariable        kLanguageAlbanian                           ;
            const AIVariable        kLanguageArabic                             ;
            const AIVariable        kLanguageBulgarian                          ;
            const AIVariable        kLanguageCatalan                            ;
            const AIVariable        kLanguageCzech                              ;
            const AIVariable        kLanguageDanish                             ;
            const AIVariable        kLanguageDutch                              ;
            const AIVariable        kLanguageEnglish                            ;
            const AIVariable        kLanguageFinnish                            ;
            const AIVariable        kLanguageFrench                             ;
            const AIVariable        kLanguageGerman                             ;
            const AIVariable        kLanguageGreek                              ;
            const AIVariable        kLanguageHebrew                             ;
            const AIVariable        kLanguageHungarian                          ;
            const AIVariable        kLanguageIcelandic                          ;
            const AIVariable        kLanguageItalian                            ;
            const AIVariable        kLanguageJapanese                           ;
            const AIVariable        kLanguageKorean                             ;
            const AIVariable        kLanguageNorwegian                          ;
            const AIVariable        kLanguagePolish                             ;
            const AIVariable        kLanguagePortuguese                         ;
            const AIVariable        kLanguageRomanian                           ;
            const AIVariable        kLanguageRussian                            ;
            const AIVariable        kLanguageSerboCroatian                      ;
            const AIVariable        kLanguageSlovak                             ;
            const AIVariable        kLanguageSpanish                            ;
            const AIVariable        kLanguageSwedish                            ;
            const AIVariable        kLanguageThai                               ;
            const AIVariable        kLanguageTurkish                            ;
            const AIVariable        kLanguageUrdu                               ;
            const AIVariable        kGPUCapabilityHardwareRenderingSupport      ;
            const AIVariable        kGPUCapabilityVertexShaderSupport           ;
            const AIVariable        kGPUCapabilityPixelShaderSupport            ;
            const AIVariable        kGPUCapabilityBloomFilterSupport            ;
            const AIVariable        kGPUCapabilityMonochromeFilterSupport       ;
            const AIVariable        kGPUCapabilityDynamicShadowsSupport         ;
            const AIVariable        kGPUCapabilityMotionBlurFilterSupport       ;
            const AIVariable        kGPUCapabilityDepthBlurFilterSupport        ;
            const AIVariable        kGPUCapabilityDistortionFilterSupport       ;
            const AIVariable        kGPUCapabilityHardwareOcclusionSupport      ;
            const AIVariable        kGPUCapabilityContrastFilterSupport         ;
            const AIVariable        kGPUCapabilityVelocityBlurFilterSupport     ;
            const AIVariable        kGPUCapabilityDistortionMapFilterSupport    ; // 1.9.0.5
            const AIVariable        kGPUCapabilitySoftParticlesSupport          ; // 1.9.0.5
            const AIVariable        kOSTypeXbox360                              ; // 1.9.0.6

            SystemPackage                               (    ):
            kOSTypeLinux                                (  4 ),
            kOSTypeMac                                  (  3 ),
            kOSTypeSymbian                              (  6 ),
            kOSTypeWindows                              (  1 ),
            kOSTypeWindowsCE                            (  2 ),
            kOSTypeIPhone                               (  7 ),
            kOSTypeWii                                  (  8 ),
            kOSTypeAngstrom                             (  9 ),
            kOSTypeAndroid                              ( 10 ),
            kOSTypePSP                                  ( 11 ),
            kOSTypePalm                                 ( 12 ),
            kOSTypePS3                                  ( 13 ),
            kOSType3DS                                  ( 16 ),
            kOSTypeBada                                 ( 17 ),
            kOSTypeBrew                                 ( 18 ),
            kClientTypeStandalone                       (  0 ),
            kClientTypeEmbedded                         (  1 ),
            kClientTypeEditor                           (  2 ),
            kLanguageUnknown                            (  0 ),
            kLanguageAlbanian                           (  1 ),
            kLanguageArabic                             (  2 ),
            kLanguageBulgarian                          (  4 ),
            kLanguageCatalan                            (  5 ),
            kLanguageCzech                              (  7 ),
            kLanguageDanish                             (  8 ),
            kLanguageDutch                              (  9 ),
            kLanguageEnglish                            ( 10 ),
            kLanguageFinnish                            ( 11 ),
            kLanguageFrench                             ( 12 ),
            kLanguageGerman                             ( 13 ),
            kLanguageGreek                              ( 14 ),
            kLanguageHebrew                             ( 15 ),
            kLanguageHungarian                          ( 16 ),
            kLanguageIcelandic                          ( 17 ),
            kLanguageItalian                            ( 18 ),
            kLanguageJapanese                           ( 19 ),
            kLanguageKorean                             ( 20 ),
            kLanguageNorwegian                          ( 21 ),
            kLanguagePolish                             ( 22 ),
            kLanguagePortuguese                         ( 23 ),
            kLanguageRomanian                           ( 25 ),
            kLanguageRussian                            ( 26 ),
            kLanguageSerboCroatian                      ( 27 ),
            kLanguageSlovak                             ( 28 ),
            kLanguageSpanish                            ( 29 ),
            kLanguageSwedish                            ( 30 ),
            kLanguageThai                               ( 31 ),
            kLanguageTurkish                            ( 32 ),
            kLanguageUrdu                               ( 33 ),
            kGPUCapabilityHardwareRenderingSupport      (  0 ),
            kGPUCapabilityVertexShaderSupport           (  1 ),
            kGPUCapabilityPixelShaderSupport            (  2 ),
            kGPUCapabilityBloomFilterSupport            (  3 ),
            kGPUCapabilityMonochromeFilterSupport       (  4 ),
            kGPUCapabilityDynamicShadowsSupport         (  5 ),
            kGPUCapabilityMotionBlurFilterSupport       (  6 ),
            kGPUCapabilityDepthBlurFilterSupport        (  7 ),
            kGPUCapabilityDistortionFilterSupport       (  8 ),
            kGPUCapabilityHardwareOcclusionSupport      (  9 ),
            kGPUCapabilityContrastFilterSupport         ( 10 ),
            kGPUCapabilityVelocityBlurFilterSupport     ( 11 ),
            kGPUCapabilityDistortionMapFilterSupport    ( 12 ), // 1.9.0.5
            kGPUCapabilitySoftParticlesSupport          ( 13 ), // 1.9.0.5
            kOSTypeXbox360                              (  5 )  // 1.9.0.6
            { }

            // Functions
            //
            inline AIVariable       getOSType                                           ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.getOSType ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariables<3>   getOSVersion                                        ( ) const { AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.getOSVersion ( 0, NULL, vOut ) ; return vOut ; }
            inline AIVariable       getOSVersionString                                  ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.getOSVersionString ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getOSLanguage                                       ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.getOSLanguage ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getGPUModelDescription                              ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.getGPUModelDescription ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getGPUDriverDescription                             ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.getGPUDriverDescription ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getGPUCapability                                    ( const AIVariable& kCapability ) const { S3DX_DECLARE_VIN_01( kCapability ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.getGPUCapability ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getDeviceUniqueIdentifier                           ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.getDeviceUniqueIdentifier ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getDeviceModel                                      ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.getDeviceModel ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getDeviceName                                       ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.getDeviceName ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getSupportedScreenResolutionCount                   ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.getSupportedScreenResolutionCount ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariables<2>   getSupportedScreenResolutionAt                      ( const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_01( nIndex ) ; AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.getSupportedScreenResolutionAt ( 1, vIn, vOut ) ; return vOut ; }
            inline AIVariables<2>   getCurrentScreenResolution                          ( ) const { AIVariables<2> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.getCurrentScreenResolution ( 0, NULL, vOut ) ; return vOut ; }
            inline AIVariable       getClientType                                       ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.getClientType ( 0, NULL, &vOut ) ; return vOut ; }
            inline void             setWakeLock                                         ( const AIVariable& bSet ) const { S3DX_DECLARE_VIN_01( bSet ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.setWakeLock ( 1, vIn, NULL ) ; }
            inline AIVariable       getClipboardText                                    ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.getClipboardText ( 0, NULL, &vOut ) ; return vOut ; }
            inline void             setClipboardText                                    ( const AIVariable& sText ) const { S3DX_DECLARE_VIN_01( sText ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.setClipboardText ( 1, vIn, NULL ) ; }
            inline AIVariable       getYear                                             ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.getYear ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getMonth                                            ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.getMonth ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getDayOfMonth                                       ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.getDayOfMonth ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getDayOfWeek                                        ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.getDayOfWeek ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getTimeOfDay                                        ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.getTimeOfDay ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getUnixTimestampString                              ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.getUnixTimestampString ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       areLocationUpdatesSupported                         ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.areLocationUpdatesSupported ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       areLocationUpdatesEnabled                           ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.areLocationUpdatesEnabled ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       enableLocationUpdates                               ( const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_01( bEnable ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.enableLocationUpdates ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariables<3>   getLastKnownLocation                                ( ) const { AIVariables<3> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.getLastKnownLocation ( 0, NULL, vOut ) ; return vOut ; }
            inline AIVariable       areHeadingUpdatesSupported                          ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.areHeadingUpdatesSupported ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       areHeadingUpdatesEnabled                            ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.areHeadingUpdatesEnabled ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       enableHeadingUpdates                                ( const AIVariable& bEnable ) const { S3DX_DECLARE_VIN_01( bEnable ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.enableHeadingUpdates ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getLastKnownHeading                                 ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.getLastKnownHeading ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getLastKnownTrueHeading                             ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.getLastKnownTrueHeading ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       hasPersistentStorageManager                         ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.hasPersistentStorageManager ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       openPersistentStorageManager                        ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.openPersistentStorageManager ( 0, NULL, &vOut ) ; return vOut ; }
            inline void             openURL                                             ( const AIVariable& sURL, const AIVariable& sTarget ) const { S3DX_DECLARE_VIN_02( sURL, sTarget ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.openURL ( 2, vIn, NULL ) ; }
            inline AIVariable       getHomeDirectory                                    ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.getHomeDirectory ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getDocumentsDirectory                               ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.getDocumentsDirectory ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getPicturesDirectory                                ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.getPicturesDirectory ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       findFiles                                           ( const AIVariable& tResult, const AIVariable& sDirectory, const AIVariable& sFilter ) const { S3DX_DECLARE_VIN_03( tResult, sDirectory, sFilter ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.findFiles ( 3, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       findDirectories                                     ( const AIVariable& tResult, const AIVariable& sDirectory ) const { S3DX_DECLARE_VIN_02( tResult, sDirectory ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.findDirectories ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             install                                             ( const AIVariable& sPackURI ) const { S3DX_DECLARE_VIN_01( sPackURI ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.install ( 1, vIn, NULL ) ; }
            inline AIVariable       isInstalled                                         ( const AIVariable& sPackURI ) const { S3DX_DECLARE_VIN_01( sPackURI ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.isInstalled ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getInstallationStatus                               ( const AIVariable& sPackURI ) const { S3DX_DECLARE_VIN_01( sPackURI ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.getInstallationStatus ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       launch                                              ( const AIVariable& sPackURI, const AIVariable& sConfURI ) const { S3DX_DECLARE_VIN_02( sPackURI, sConfURI ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->system.launch ( 2, vIn, &vOut ) ; return vOut ; }
        } ;

        struct TablePackage
        {
            // Functions
            //
            inline AIVariable       isEmpty                                             ( const AIVariable& hTable ) const { S3DX_DECLARE_VIN_01( hTable ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.isEmpty ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getSize                                             ( const AIVariable& hTable ) const { S3DX_DECLARE_VIN_01( hTable ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.getSize ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getAt                                               ( const AIVariable& hTable, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hTable, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.getAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getLast                                             ( const AIVariable& hTable ) const { S3DX_DECLARE_VIN_01( hTable ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.getLast ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getFirst                                            ( const AIVariable& hTable ) const { S3DX_DECLARE_VIN_01( hTable ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.getFirst ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setAt                                               ( const AIVariable& hTable, const AIVariable& nIndex, const AIVariable& vValue ) const { S3DX_DECLARE_VIN_03( hTable, nIndex, vValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.setAt ( 3, vIn, NULL ) ; }
            inline void             empty                                               ( const AIVariable& hTable ) const { S3DX_DECLARE_VIN_01( hTable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.empty ( 1, vIn, NULL ) ; }
            inline void             add                                                 ( const AIVariable& hTable, const AIVariable& vValue ) const { S3DX_DECLARE_VIN_02( hTable, vValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.add ( 2, vIn, NULL ) ; }
            inline void             removeAt                                            ( const AIVariable& hTable, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hTable, nIndex ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.removeAt ( 2, vIn, NULL ) ; }
            inline void             removeLast                                          ( const AIVariable& hTable ) const { S3DX_DECLARE_VIN_01( hTable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.removeLast ( 1, vIn, NULL ) ; }
            inline void             removeFirst                                         ( const AIVariable& hTable ) const { S3DX_DECLARE_VIN_01( hTable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.removeFirst ( 1, vIn, NULL ) ; }
            inline void             insertAt                                            ( const AIVariable& hTable, const AIVariable& nIndex, const AIVariable& vValue ) const { S3DX_DECLARE_VIN_03( hTable, nIndex, vValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.insertAt ( 3, vIn, NULL ) ; }
            inline AIVariable       contains                                            ( const AIVariable& hTable, const AIVariable& vValue ) const { S3DX_DECLARE_VIN_02( hTable, vValue ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.contains ( 2, vIn, &vOut ) ; return vOut ; }
            inline void             shuffle                                             ( const AIVariable& hTable ) const { S3DX_DECLARE_VIN_01( hTable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.shuffle ( 1, vIn, NULL ) ; }
            inline void             reverse                                             ( const AIVariable& hTable ) const { S3DX_DECLARE_VIN_01( hTable ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.reverse ( 1, vIn, NULL ) ; }
            inline void             swap                                                ( const AIVariable& hTable, const AIVariable& nIndex0, const AIVariable& nIndex1 ) const { S3DX_DECLARE_VIN_03( hTable, nIndex0, nIndex1 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.swap ( 3, vIn, NULL ) ; }
            inline AIVariable       reserve                                             ( const AIVariable& hTable, const AIVariable& nCount ) const { S3DX_DECLARE_VIN_02( hTable, nCount ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.reserve ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariables<32>  getRangeAt                                          ( const AIVariable& hTable, const AIVariable& nIndex, const AIVariable& nCount ) const { S3DX_DECLARE_VIN_03( hTable, nIndex, nCount ) ; AIVariables<32> vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.getRangeAt ( 3, vIn, vOut ) ; return vOut ; }
            
            inline void             setRangeAt                                          ( const AIVariable& hTable, const AIVariable& nIndex, const AIVariable& vParam0 ) const { S3DX_DECLARE_VIN_03( hTable, nIndex, vParam0 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.setRangeAt ( 3, vIn, NULL ) ; }
            inline void             setRangeAt                                          ( const AIVariable& hTable, const AIVariable& nIndex, const AIVariable& vParam0, const AIVariable& vParam1 ) const { S3DX_DECLARE_VIN_04( hTable, nIndex, vParam0, vParam1 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.setRangeAt ( 4, vIn, NULL ) ; }
            inline void             setRangeAt                                          ( const AIVariable& hTable, const AIVariable& nIndex, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2 ) const { S3DX_DECLARE_VIN_05( hTable, nIndex, vParam0, vParam1, vParam2 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.setRangeAt ( 5, vIn, NULL ) ; }
            inline void             setRangeAt                                          ( const AIVariable& hTable, const AIVariable& nIndex, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3 ) const { S3DX_DECLARE_VIN_06( hTable, nIndex, vParam0, vParam1, vParam2, vParam3 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.setRangeAt ( 6, vIn, NULL ) ; }
            inline void             setRangeAt                                          ( const AIVariable& hTable, const AIVariable& nIndex, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4 ) const { S3DX_DECLARE_VIN_07( hTable, nIndex, vParam0, vParam1, vParam2, vParam3, vParam4 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.setRangeAt ( 7, vIn, NULL ) ; }
            inline void             setRangeAt                                          ( const AIVariable& hTable, const AIVariable& nIndex, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5 ) const { S3DX_DECLARE_VIN_08( hTable, nIndex, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.setRangeAt ( 8, vIn, NULL ) ; }
            inline void             setRangeAt                                          ( const AIVariable& hTable, const AIVariable& nIndex, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6 ) const { S3DX_DECLARE_VIN_09( hTable, nIndex, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.setRangeAt ( 9, vIn, NULL ) ; }
            inline void             setRangeAt                                          ( const AIVariable& hTable, const AIVariable& nIndex, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7 ) const { S3DX_DECLARE_VIN_10( hTable, nIndex, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.setRangeAt ( 10, vIn, NULL ) ; }
            inline void             setRangeAt                                          ( const AIVariable& hTable, const AIVariable& nIndex, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8 ) const { S3DX_DECLARE_VIN_11( hTable, nIndex, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.setRangeAt ( 11, vIn, NULL ) ; }
            inline void             setRangeAt                                          ( const AIVariable& hTable, const AIVariable& nIndex, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9 ) const { S3DX_DECLARE_VIN_12( hTable, nIndex, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.setRangeAt ( 12, vIn, NULL ) ; }
            inline void             setRangeAt                                          ( const AIVariable& hTable, const AIVariable& nIndex, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10 ) const { S3DX_DECLARE_VIN_13( hTable, nIndex, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.setRangeAt ( 13, vIn, NULL ) ; }
            inline void             setRangeAt                                          ( const AIVariable& hTable, const AIVariable& nIndex, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10, const AIVariable& vParam11 ) const { S3DX_DECLARE_VIN_14( hTable, nIndex, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10, vParam11 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.setRangeAt ( 14, vIn, NULL ) ; }
            inline void             setRangeAt                                          ( const AIVariable& hTable, const AIVariable& nIndex, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10, const AIVariable& vParam11, const AIVariable& vParam12 ) const { S3DX_DECLARE_VIN_15( hTable, nIndex, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10, vParam11, vParam12 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.setRangeAt ( 15, vIn, NULL ) ; }
            inline void             setRangeAt                                          ( const AIVariable& hTable, const AIVariable& nIndex, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10, const AIVariable& vParam11, const AIVariable& vParam12, const AIVariable& vParam13 ) const { S3DX_DECLARE_VIN_16( hTable, nIndex, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10, vParam11, vParam12, vParam13 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.setRangeAt ( 16, vIn, NULL ) ; }
            inline void             setRangeAt                                          ( const AIVariable& hTable, const AIVariable& nIndex, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10, const AIVariable& vParam11, const AIVariable& vParam12, const AIVariable& vParam13, const AIVariable& vParam14 ) const { S3DX_DECLARE_VIN_17( hTable, nIndex, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10, vParam11, vParam12, vParam13, vParam14 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.setRangeAt ( 17, vIn, NULL ) ; }
            inline void             setRangeAt                                          ( const AIVariable& hTable, const AIVariable& nIndex, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10, const AIVariable& vParam11, const AIVariable& vParam12, const AIVariable& vParam13, const AIVariable& vParam14, const AIVariable& vParam15 ) const { S3DX_DECLARE_VIN_18( hTable, nIndex, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10, vParam11, vParam12, vParam13, vParam14, vParam15 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.setRangeAt ( 18, vIn, NULL ) ; }
            inline void             setRangeAt                                          ( const AIVariable& hTable, const AIVariable& nIndex, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10, const AIVariable& vParam11, const AIVariable& vParam12, const AIVariable& vParam13, const AIVariable& vParam14, const AIVariable& vParam15, const AIVariable& vParam16 ) const { S3DX_DECLARE_VIN_19( hTable, nIndex, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10, vParam11, vParam12, vParam13, vParam14, vParam15, vParam16 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.setRangeAt ( 19, vIn, NULL ) ; }
            inline void             setRangeAt                                          ( const AIVariable& hTable, const AIVariable& nIndex, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10, const AIVariable& vParam11, const AIVariable& vParam12, const AIVariable& vParam13, const AIVariable& vParam14, const AIVariable& vParam15, const AIVariable& vParam16, const AIVariable& vParam17 ) const { S3DX_DECLARE_VIN_20( hTable, nIndex, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10, vParam11, vParam12, vParam13, vParam14, vParam15, vParam16, vParam17 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.setRangeAt ( 20, vIn, NULL ) ; }
            inline void             setRangeAt                                          ( const AIVariable& hTable, const AIVariable& nIndex, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10, const AIVariable& vParam11, const AIVariable& vParam12, const AIVariable& vParam13, const AIVariable& vParam14, const AIVariable& vParam15, const AIVariable& vParam16, const AIVariable& vParam17, const AIVariable& vParam18 ) const { S3DX_DECLARE_VIN_21( hTable, nIndex, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10, vParam11, vParam12, vParam13, vParam14, vParam15, vParam16, vParam17, vParam18 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.setRangeAt ( 21, vIn, NULL ) ; }
            inline void             setRangeAt                                          ( const AIVariable& hTable, const AIVariable& nIndex, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10, const AIVariable& vParam11, const AIVariable& vParam12, const AIVariable& vParam13, const AIVariable& vParam14, const AIVariable& vParam15, const AIVariable& vParam16, const AIVariable& vParam17, const AIVariable& vParam18, const AIVariable& vParam19 ) const { S3DX_DECLARE_VIN_22( hTable, nIndex, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10, vParam11, vParam12, vParam13, vParam14, vParam15, vParam16, vParam17, vParam18, vParam19 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.setRangeAt ( 22, vIn, NULL ) ; }
            inline void             setRangeAt                                          ( const AIVariable& hTable, const AIVariable& nIndex, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10, const AIVariable& vParam11, const AIVariable& vParam12, const AIVariable& vParam13, const AIVariable& vParam14, const AIVariable& vParam15, const AIVariable& vParam16, const AIVariable& vParam17, const AIVariable& vParam18, const AIVariable& vParam19, const AIVariable& vParam20 ) const { S3DX_DECLARE_VIN_23( hTable, nIndex, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10, vParam11, vParam12, vParam13, vParam14, vParam15, vParam16, vParam17, vParam18, vParam19, vParam20 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->table.setRangeAt ( 23, vIn, NULL ) ; }
        } ;

        struct UserPackage
        {
            // Functions
            //
            inline AIVariable       getSceneName                                        ( const AIVariable& hUser ) const { S3DX_DECLARE_VIN_01( hUser ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.getSceneName ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       isLocal                                             ( const AIVariable& hUser ) const { S3DX_DECLARE_VIN_01( hUser ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.isLocal ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getID                                               ( const AIVariable& hUser ) const { S3DX_DECLARE_VIN_01( hUser ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.getID ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setLocalSoundSourceObject                           ( const AIVariable& hUser, const AIVariable& hObject ) const { S3DX_DECLARE_VIN_02( hUser, hObject ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.setLocalSoundSourceObject ( 2, vIn, NULL ) ; }
            inline AIVariable       getLocalSoundSourceObject                           ( const AIVariable& hUser ) const { S3DX_DECLARE_VIN_01( hUser ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.getLocalSoundSourceObject ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setLocalSoundSourceRolloffFactor                    ( const AIVariable& hUser, const AIVariable& nFactor ) const { S3DX_DECLARE_VIN_02( hUser, nFactor ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.setLocalSoundSourceRolloffFactor ( 2, vIn, NULL ) ; }
            inline AIVariable       getLocalSoundSourceRolloffFactor                    ( const AIVariable& hUser ) const { S3DX_DECLARE_VIN_01( hUser ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.getLocalSoundSourceRolloffFactor ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setLocalSoundSourceReferenceDistance                ( const AIVariable& hUser, const AIVariable& nDistance ) const { S3DX_DECLARE_VIN_02( hUser, nDistance ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.setLocalSoundSourceReferenceDistance ( 2, vIn, NULL ) ; }
            inline AIVariable       getLocalSoundSourceReferenceDistance                ( const AIVariable& hUser ) const { S3DX_DECLARE_VIN_01( hUser ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.getLocalSoundSourceReferenceDistance ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getAIModelCount                                     ( const AIVariable& hUser ) const { S3DX_DECLARE_VIN_01( hUser ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.getAIModelCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getAIModelNameAt                                    ( const AIVariable& hUser, const AIVariable& nIndex ) { S3DX_DECLARE_VIN_02( hUser, nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.getAIModelNameAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       hasAIModel                                          ( const AIVariable& hUser, const AIVariable& sAIModel ) { S3DX_DECLARE_VIN_02( hUser, sAIModel ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.hasAIModel ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       hasAIEventHandler                                   ( const AIVariable& hUser, const AIVariable& sAIModel, const AIVariable& sHandler ) { S3DX_DECLARE_VIN_03( hUser, sAIModel, sHandler ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.hasAIEventHandler ( 3, vIn, &vOut ) ; return vOut ; }

            inline void             sendEvent                                           ( const AIVariable& hUser, const AIVariable& sAIModel, const AIVariable& sEvent ) const { S3DX_DECLARE_VIN_03( hUser, sAIModel, sEvent ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.sendEvent ( 3, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hUser, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0 ) const { S3DX_DECLARE_VIN_04( hUser, sAIModel, sEvent, vParam0 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.sendEvent ( 4, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hUser, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1 ) const { S3DX_DECLARE_VIN_05( hUser, sAIModel, sEvent, vParam0, vParam1 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.sendEvent ( 5, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hUser, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2 ) const { S3DX_DECLARE_VIN_06( hUser, sAIModel, sEvent, vParam0, vParam1, vParam2 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.sendEvent ( 6, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hUser, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3 ) const { S3DX_DECLARE_VIN_07( hUser, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.sendEvent ( 7, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hUser, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4 ) const { S3DX_DECLARE_VIN_08( hUser, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.sendEvent ( 8, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hUser, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5 ) const { S3DX_DECLARE_VIN_09( hUser, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.sendEvent ( 9, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hUser, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6 ) const { S3DX_DECLARE_VIN_10( hUser, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.sendEvent ( 10, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hUser, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7 ) const { S3DX_DECLARE_VIN_11( hUser, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.sendEvent ( 11, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hUser, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8 ) const { S3DX_DECLARE_VIN_12( hUser, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.sendEvent ( 12, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hUser, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9 ) const { S3DX_DECLARE_VIN_13( hUser, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.sendEvent ( 13, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hUser, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10 ) const { S3DX_DECLARE_VIN_14( hUser, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.sendEvent ( 14, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hUser, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10, const AIVariable& vParam11 ) const { S3DX_DECLARE_VIN_15( hUser, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10, vParam11 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.sendEvent ( 15, vIn, NULL ) ; }
            inline void             sendEvent                                           ( const AIVariable& hUser, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10, const AIVariable& vParam11, const AIVariable& vParam12 ) const { S3DX_DECLARE_VIN_16( hUser, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10, vParam11, vParam12 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.sendEvent ( 16, vIn, NULL ) ; }

            inline void             postEvent                                           ( const AIVariable& hUser, const AIVariable& nDelay, const AIVariable& sAIModel, const AIVariable& sEvent ) const { S3DX_DECLARE_VIN_04( hUser, nDelay, sAIModel, sEvent ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.postEvent ( 4, vIn, NULL ) ; }
            inline void             postEvent                                           ( const AIVariable& hUser, const AIVariable& nDelay, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0 ) const { S3DX_DECLARE_VIN_05( hUser, nDelay, sAIModel, sEvent, vParam0 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.postEvent ( 5, vIn, NULL ) ; }
            inline void             postEvent                                           ( const AIVariable& hUser, const AIVariable& nDelay, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1 ) const { S3DX_DECLARE_VIN_06( hUser, nDelay, sAIModel, sEvent, vParam0, vParam1 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.postEvent ( 6, vIn, NULL ) ; }
            inline void             postEvent                                           ( const AIVariable& hUser, const AIVariable& nDelay, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2 ) const { S3DX_DECLARE_VIN_07( hUser, nDelay, sAIModel, sEvent, vParam0, vParam1, vParam2 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.postEvent ( 7, vIn, NULL ) ; }
            inline void             postEvent                                           ( const AIVariable& hUser, const AIVariable& nDelay, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3 ) const { S3DX_DECLARE_VIN_08( hUser, nDelay, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.postEvent ( 8, vIn, NULL ) ; }
            inline void             postEvent                                           ( const AIVariable& hUser, const AIVariable& nDelay, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4 ) const { S3DX_DECLARE_VIN_09( hUser, nDelay, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.postEvent ( 9, vIn, NULL ) ; }
            inline void             postEvent                                           ( const AIVariable& hUser, const AIVariable& nDelay, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5 ) const { S3DX_DECLARE_VIN_10( hUser, nDelay, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.postEvent ( 10, vIn, NULL ) ; }
            inline void             postEvent                                           ( const AIVariable& hUser, const AIVariable& nDelay, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6 ) const { S3DX_DECLARE_VIN_11( hUser, nDelay, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.postEvent ( 11, vIn, NULL ) ; }
            inline void             postEvent                                           ( const AIVariable& hUser, const AIVariable& nDelay, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7 ) const { S3DX_DECLARE_VIN_12( hUser, nDelay, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.postEvent ( 12, vIn, NULL ) ; }
            inline void             postEvent                                           ( const AIVariable& hUser, const AIVariable& nDelay, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8 ) const { S3DX_DECLARE_VIN_13( hUser, nDelay, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.postEvent ( 13, vIn, NULL ) ; }
            inline void             postEvent                                           ( const AIVariable& hUser, const AIVariable& nDelay, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9 ) const { S3DX_DECLARE_VIN_14( hUser, nDelay, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.postEvent ( 14, vIn, NULL ) ; }
            inline void             postEvent                                           ( const AIVariable& hUser, const AIVariable& nDelay, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10 ) const { S3DX_DECLARE_VIN_15( hUser, nDelay, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.postEvent ( 15, vIn, NULL ) ; }
            inline void             postEvent                                           ( const AIVariable& hUser, const AIVariable& nDelay, const AIVariable& sAIModel, const AIVariable& sEvent, const AIVariable& vParam0, const AIVariable& vParam1, const AIVariable& vParam2, const AIVariable& vParam3, const AIVariable& vParam4, const AIVariable& vParam5, const AIVariable& vParam6, const AIVariable& vParam7, const AIVariable& vParam8, const AIVariable& vParam9, const AIVariable& vParam10, const AIVariable& vParam11 ) const { S3DX_DECLARE_VIN_16( hUser, nDelay, sAIModel, sEvent, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10, vParam11 ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->user.postEvent ( 16, vIn, NULL ) ; }
        } ;

        struct VideoPackage
        {
            // Functions
            //
            inline AIVariable       getCaptureDeviceCount                               ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->video.getCaptureDeviceCount ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getCaptureDeviceNameAt                              ( const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_01( nIndex ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->video.getCaptureDeviceNameAt ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setActiveCaptureDevice                              ( const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_01( nIndex ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->video.setActiveCaptureDevice ( 1, vIn, NULL ) ; }
            inline AIVariable       startCaptureToPixelMap                              ( const AIVariable& sPixelMapName ) const { S3DX_DECLARE_VIN_01( sPixelMapName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->video.startCaptureToPixelMap ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             stopCapture                                         ( ) const { S3DX_MODULE_GUID::__pS3DXEAPIMI->video.stopCapture ( 0, NULL, NULL ) ; }
            inline AIVariable       getCaptureWidth                                     ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->video.getCaptureWidth ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getCaptureHeight                                    ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->video.getCaptureHeight ( 0, NULL, &vOut ) ; return vOut ; }
            inline AIVariable       getCaptureHorizontalFlip                            ( ) const { AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->video.getCaptureHorizontalFlip ( 0, NULL, &vOut ) ; return vOut ; }
            inline void             setCaptureWidth                                     ( const AIVariable& nWidth ) const { S3DX_DECLARE_VIN_01( nWidth ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->video.setCaptureWidth ( 1, vIn, NULL ) ; }
            inline void             setCaptureHeight                                    ( const AIVariable& nHeight ) const { S3DX_DECLARE_VIN_01( nHeight ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->video.setCaptureHeight ( 1, vIn, NULL ) ; }
            inline void             setCaptureRate                                      ( const AIVariable& nRate ) const { S3DX_DECLARE_VIN_01( nRate ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->video.setCaptureRate ( 1, vIn, NULL ) ; }
            inline void             setCaptureHorizontalFlip                            ( const AIVariable& bFlip ) const { S3DX_DECLARE_VIN_01( bFlip ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->video.setCaptureHorizontalFlip ( 1, vIn, NULL ) ; }
        } ;

        struct XmlPackage
        {
            // Functions
            //
            inline AIVariable       getRootElement                                      ( const AIVariable& hXML ) const { S3DX_DECLARE_VIN_01( hXML ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.getRootElement ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getElementName                                      ( const AIVariable& hXMLElement ) const { S3DX_DECLARE_VIN_01( hXMLElement ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.getElementName ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setElementName                                      ( const AIVariable& hXMLElement, const AIVariable& sName ) const { S3DX_DECLARE_VIN_02( hXMLElement, sName ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.setElementName ( 2, vIn, NULL ) ; }
            inline AIVariable       getElementValue                                     ( const AIVariable& hXMLElement ) const { S3DX_DECLARE_VIN_01( hXMLElement ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.getElementValue ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setElementValue                                     ( const AIVariable& hXMLElement, const AIVariable& sValue ) const { S3DX_DECLARE_VIN_02( hXMLElement, sValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.setElementValue ( 2, vIn, NULL ) ; }
            inline AIVariable       getElementChildCount                                ( const AIVariable& hXMLElement ) const { S3DX_DECLARE_VIN_01( hXMLElement ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.getElementChildCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getElementChildAt                                   ( const AIVariable& hXMLElement, const AIVariable& nChild ) const { S3DX_DECLARE_VIN_02( hXMLElement, nChild ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.getElementChildAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getElementAttributeCount                            ( const AIVariable& hXMLElement ) const { S3DX_DECLARE_VIN_01( hXMLElement ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.getElementAttributeCount ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getElementAttributeAt                               ( const AIVariable& hXMLElement, const AIVariable& nAttribute ) const { S3DX_DECLARE_VIN_02( hXMLElement, nAttribute ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.getElementAttributeAt ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getElementAttributeWithName                         ( const AIVariable& hXMLElement, const AIVariable& sName ) const { S3DX_DECLARE_VIN_02( hXMLElement, sName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.getElementAttributeWithName ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getElementParent                                    ( const AIVariable& hXMLElement ) const { S3DX_DECLARE_VIN_01( hXMLElement ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.getElementParent ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getElementFirstChild                                ( const AIVariable& hXMLElement ) const { S3DX_DECLARE_VIN_01( hXMLElement ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.getElementFirstChild ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getElementNextSibling                               ( const AIVariable& hXMLElement ) const { S3DX_DECLARE_VIN_01( hXMLElement ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.getElementNextSibling ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getElementFirstChildWithName                        ( const AIVariable& hXMLElement, const AIVariable& sName ) const { S3DX_DECLARE_VIN_02( hXMLElement, sName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.getElementFirstChildWithName ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getElementNextSiblingWithName                       ( const AIVariable& hXMLElement, const AIVariable& sName ) const { S3DX_DECLARE_VIN_02( hXMLElement, sName ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.getElementNextSiblingWithName ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       appendElementChild                                  ( const AIVariable& hXMLElement, const AIVariable& sName, const AIVariable& sValue ) const { S3DX_DECLARE_VIN_03( hXMLElement, sName, sValue ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.appendElementChild ( 3, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       insertElementChildAt                                ( const AIVariable& hXMLElement, const AIVariable& nIndex, const AIVariable& sName, const AIVariable& sValue ) const { S3DX_DECLARE_VIN_04( hXMLElement, nIndex, sName, sValue ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.insertElementChildAt ( 4, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       appendElementChildElement                           ( const AIVariable& hXMLElement, const AIVariable& hChild ) const { S3DX_DECLARE_VIN_02( hXMLElement, hChild ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.appendElementChildElement ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       insertElementChildElementAt                         ( const AIVariable& hXMLElement, const AIVariable& nIndex, const AIVariable& hChild ) const { S3DX_DECLARE_VIN_03( hXMLElement, nIndex, hChild ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.insertElementChildElementAt ( 3, vIn, &vOut ) ; return vOut ; }
            inline void             removeElementChildAt                                ( const AIVariable& hXMLElement, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hXMLElement, nIndex ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.removeElementChildAt ( 2, vIn, NULL ) ; }
            inline void             removeElementChild                                  ( const AIVariable& hXMLElement, const AIVariable& hChild ) const { S3DX_DECLARE_VIN_02( hXMLElement, hChild ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.removeElementChild ( 2, vIn, NULL ) ; }
            inline AIVariable       appendElementAttribute                              ( const AIVariable& hXMLElement, const AIVariable& sName, const AIVariable& sValue ) const { S3DX_DECLARE_VIN_03( hXMLElement, sName, sValue ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.appendElementAttribute ( 3, vIn, &vOut ) ; return vOut ; }
            inline void             removeElementAttributeAt                            ( const AIVariable& hXMLElement, const AIVariable& nIndex ) const { S3DX_DECLARE_VIN_02( hXMLElement, nIndex ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.removeElementAttributeAt ( 2, vIn, NULL ) ; }
            inline void             removeElementAttribute                              ( const AIVariable& hXMLElement, const AIVariable& hAttribute ) const { S3DX_DECLARE_VIN_02( hXMLElement, hAttribute ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.removeElementAttribute ( 2, vIn, NULL ) ; }
            inline AIVariable       getAttributeName                                    ( const AIVariable& hXMLAttribute ) const { S3DX_DECLARE_VIN_01( hXMLAttribute ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.getAttributeName ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setAttributeName                                    ( const AIVariable& hXMLAttribute, const AIVariable& sName ) const { S3DX_DECLARE_VIN_02( hXMLAttribute, sName ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.setAttributeName ( 2, vIn, NULL ) ; }
            inline AIVariable       getAttributeValue                                   ( const AIVariable& hXMLAttribute ) const { S3DX_DECLARE_VIN_01( hXMLAttribute ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.getAttributeValue ( 1, vIn, &vOut ) ; return vOut ; }
            inline void             setAttributeValue                                   ( const AIVariable& hXMLAttribute, const AIVariable& sValue ) const { S3DX_DECLARE_VIN_02( hXMLAttribute, sValue ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.setAttributeValue ( 2, vIn, NULL ) ; }
            inline void             empty                                               ( const AIVariable& hXML ) const { S3DX_DECLARE_VIN_01( hXML ) ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.empty ( 1, vIn, NULL ) ; }
            inline AIVariable       toString                                            ( const AIVariable& hXMLElement ) const { S3DX_DECLARE_VIN_01( hXMLElement ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.toString ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       createFromString                                    ( const AIVariable& hXML, const AIVariable& sValue ) const { S3DX_DECLARE_VIN_02( hXML, sValue ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.createFromString ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       send                                                ( const AIVariable& hXML, const AIVariable& sURI ) const { S3DX_DECLARE_VIN_02( hXML, sURI ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.send ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       receive                                             ( const AIVariable& hXML, const AIVariable& sURI ) const { S3DX_DECLARE_VIN_02( hXML, sURI ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.receive ( 2, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       receive                                             ( const AIVariable& hXML, const AIVariable& sURI, const AIVariable& sOptionalHeader ) const { S3DX_DECLARE_VIN_03( hXML, sURI, sOptionalHeader ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.receive ( 3, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getSendStatus                                       ( const AIVariable& hXML ) const { S3DX_DECLARE_VIN_01( hXML ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.getSendStatus ( 1, vIn, &vOut ) ; return vOut ; }
            inline AIVariable       getReceiveStatus                                    ( const AIVariable& hXML ) const { S3DX_DECLARE_VIN_01( hXML ) ; AIVariable vOut ; S3DX_MODULE_GUID::__pS3DXEAPIMI->xml.getReceiveStatus ( 1, vIn, &vOut ) ; return vOut ; }
        } ;

        //---------------------------------------------------------------------
        //  Variables
        //
        AnimationCallbacks          animation       ;
        ApplicationCallbacks        application     ;
        CacheCallbacks              cache           ;
        CameraCallbacks             camera          ;
        DebugCallbacks              debug           ;
        DynamicsCallbacks           dynamics        ;
        GroupCallbacks              group           ;
        HashtableCallbacks          hashtable       ;
        HudCallbacks                hud             ;
        InputCallbacks              input           ;
        LightCallbacks              light           ;
        LogCallbacks                log             ;
        MathCallbacks               math            ;
        MeshCallbacks               mesh            ;
        MicrophoneCallbacks         microphone      ;
        MusicCallbacks              music           ;
        NavigationCallbacks         navigation      ;
        NetworkCallbacks            network         ;
        ObjectCallbacks             object          ;
        PixelmapCallbacks           pixelmap        ;
        ProjectorCallbacks          projector       ;
        SceneCallbacks              scene           ;
        SensorCallbacks             sensor          ;
        ServerCallbacks             server          ;
        SessionCallbacks            session         ;
        SfxCallbacks                sfx             ;
        ShapeCallbacks              shape           ;
        SoundCallbacks              sound           ;
        StringCallbacks             string          ;
        SystemCallbacks             system          ;
        TableCallbacks              table           ;
        UserCallbacks               user            ;
        VideoCallbacks              video           ;
        XmlCallbacks                xml             ;
    } ;

    // Top level API declaration
    //
    extern AIEngineAPI::AnimationPackage    animation       ;
    extern AIEngineAPI::ApplicationPackage  application     ;
    extern AIEngineAPI::CachePackage        cache           ;
    extern AIEngineAPI::CameraPackage       camera          ;
    extern AIEngineAPI::DebugPackage        debug           ;
    extern AIEngineAPI::DynamicsPackage     dynamics        ;
    extern AIEngineAPI::GroupPackage        group           ;
    extern AIEngineAPI::HashtablePackage    hashtable       ;
    extern AIEngineAPI::HudPackage          hud             ;
    extern AIEngineAPI::InputPackage        input           ;
    extern AIEngineAPI::LightPackage        light           ;
    extern AIEngineAPI::LogPackage          log             ;
    extern AIEngineAPI::MathPackage         math            ;
    extern AIEngineAPI::MeshPackage         mesh            ;
    extern AIEngineAPI::MicrophonePackage   microphone      ;
    extern AIEngineAPI::MusicPackage        music           ;
    extern AIEngineAPI::NavigationPackage   navigation      ;
    extern AIEngineAPI::NetworkPackage      network         ;
    extern AIEngineAPI::ObjectPackage       object          ;
    extern AIEngineAPI::PixelmapPackage     pixelmap        ;
    extern AIEngineAPI::ProjectorPackage    projector       ;
    extern AIEngineAPI::ScenePackage        scene           ;
    extern AIEngineAPI::SensorPackage       sensor          ;
    extern AIEngineAPI::ServerPackage       server          ;
    extern AIEngineAPI::SessionPackage      session         ;
    extern AIEngineAPI::SfxPackage          sfx             ;
    extern AIEngineAPI::ShapePackage        shape           ;
    extern AIEngineAPI::SoundPackage        sound           ;
    extern AIEngineAPI::StringPackage       string          ;
    extern AIEngineAPI::SystemPackage       system          ;
    extern AIEngineAPI::TablePackage        table           ;
    extern AIEngineAPI::UserPackage         user            ;
    extern AIEngineAPI::VideoPackage        video           ;
    extern AIEngineAPI::XmlPackage          xml             ;
}

//-----------------------------------------------------------------------------
#define S3DX_REGISTER_AIENGINEAPI_CALLBACK( __iCallbackID, __pCallback )                                                                                                                                  \
                                                                                                                                                                                                            \
    switch ( __iCallbackID )                                                                                                                                                                                \
    {                                                                                                                                                                                                       \
    case S3DX::AIEngineAPI::CallbackID_animation_setCurrentClip                                               : animation.setCurrentClip                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_animation_getCurrentClip                                               : animation.getCurrentClip                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_animation_setPlaybackSpeed                                             : animation.setPlaybackSpeed                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_animation_getPlaybackSpeed                                             : animation.getPlaybackSpeed                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_animation_setPlaybackLevel                                             : animation.setPlaybackLevel                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_animation_getPlaybackLevel                                             : animation.getPlaybackLevel                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_animation_setPlaybackKeyFrameBegin                                     : animation.setPlaybackKeyFrameBegin                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_animation_getPlaybackKeyFrameBegin                                     : animation.getPlaybackKeyFrameBegin                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_animation_setPlaybackKeyFrameEnd                                       : animation.setPlaybackKeyFrameEnd                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_animation_getPlaybackKeyFrameEnd                                       : animation.getPlaybackKeyFrameEnd                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_animation_setPlaybackMode                                              : animation.setPlaybackMode                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_animation_getPlaybackMode                                              : animation.getPlaybackMode                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_animation_setPlaybackCursor                                            : animation.setPlaybackCursor                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_animation_getPlaybackCursor                                            : animation.getPlaybackCursor                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_animation_matchPlaybackCursor                                          : animation.matchPlaybackCursor                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_animation_setSkeletonScale                                             : animation.setSkeletonScale                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_animation_getSkeletonScale                                             : animation.getSkeletonScale                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_animation_setObjectChannel                                             : animation.setObjectChannel                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_animation_getClipKeyFrameRangeMin                                      : animation.getClipKeyFrameRangeMin                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_animation_getClipKeyFrameRangeMax                                      : animation.getClipKeyFrameRangeMax                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_animation_getClipName                                                  : animation.getClipName                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_animation_setPlaybackIgnoreNotAnimatedChannels                         : animation.setPlaybackIgnoreNotAnimatedChannels                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_animation_getPlaybackIgnoreNotAnimatedChannels                         : animation.getPlaybackIgnoreNotAnimatedChannels                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_animation_setPlaybackIgnoreIfCursorOutOfRange                          : animation.setPlaybackIgnoreIfCursorOutOfRange                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_animation_getPlaybackIgnoreIfCursorOutOfRange                          : animation.getPlaybackIgnoreIfCursorOutOfRange                     = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_application_getName                                                    : application.getName                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_getPackDirectory                                           : application.getPackDirectory                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_getUserCount                                               : application.getUserCount                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_getUserAt                                                  : application.getUserAt                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_getUser                                                    : application.getUser                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_getCurrentUser                                             : application.getCurrentUser                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_getCurrentUserScene                                        : application.getCurrentUserScene                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_getCurrentUserSceneName                                    : application.getCurrentUserSceneName                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_setCurrentUserScene                                        : application.setCurrentUserScene                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_getCurrentUserSceneTaggedObject                            : application.getCurrentUserSceneTaggedObject                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_getCurrentUserAIVariable                                   : application.getCurrentUserAIVariable                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_setCurrentUserAIVariable                                   : application.setCurrentUserAIVariable                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_getCurrentUserAIState                                      : application.getCurrentUserAIState                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_playOverlayExternalMovie                                   : application.playOverlayExternalMovie                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_playOverlayMovie                                           : application.playOverlayMovie                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_stopOverlayMovie                                           : application.stopOverlayMovie                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_isOverlayMoviePlaying                                      : application.isOverlayMoviePlaying                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_startCurrentUserScenePreloading                            : application.startCurrentUserScenePreloading                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_getCurrentUserScenePreloadingStatus                        : application.getCurrentUserScenePreloadingStatus                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_forceModelToStayLoaded                                     : application.forceModelToStayLoaded                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_forceResourceToStayLoaded                                  : application.forceResourceToStayLoaded                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_isModelLoaded                                              : application.isModelLoaded                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_isResourceLoaded                                           : application.isResourceLoaded                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_getCurrentUserMainCamera                                   : application.getCurrentUserMainCamera                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_getCurrentUserActiveCamera                                 : application.getCurrentUserActiveCamera                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_setCurrentUserActiveCamera                                 : application.setCurrentUserActiveCamera                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_resetCurrentUserActiveCamera                               : application.resetCurrentUserActiveCamera                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_getCurrentUserViewportAspectRatio                          : application.getCurrentUserViewportAspectRatio                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_getCurrentUserViewportWidth                                : application.getCurrentUserViewportWidth                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_getCurrentUserViewportHeight                               : application.getCurrentUserViewportHeight                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_saveCurrentUserViewportToTexture                           : application.saveCurrentUserViewportToTexture                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_getCurrentUserEnvironmentVariableCount                     : application.getCurrentUserEnvironmentVariableCount                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_getCurrentUserEnvironmentVariableNameAt                    : application.getCurrentUserEnvironmentVariableNameAt               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_setCurrentUserEnvironmentVariable                          : application.setCurrentUserEnvironmentVariable                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_getCurrentUserEnvironmentVariable                          : application.getCurrentUserEnvironmentVariable                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_unsetCurrentUserEnvironmentVariable                        : application.unsetCurrentUserEnvironmentVariable                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_clearCurrentUserEnvironment                                : application.clearCurrentUserEnvironment                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_saveCurrentUserEnvironment                                 : application.saveCurrentUserEnvironment                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_setCurrentUserEnvironmentName                              : application.setCurrentUserEnvironmentName                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_getCurrentUserEnvironmentName                              : application.getCurrentUserEnvironmentName                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_setCurrentUserEnvironmentTitle                             : application.setCurrentUserEnvironmentTitle                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_setCurrentUserEnvironmentDescription                       : application.setCurrentUserEnvironmentDescription                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_loadCurrentUserEnvironment                                 : application.loadCurrentUserEnvironment                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_getCurrentUserEnvironmentVariableStatus                    : application.getCurrentUserEnvironmentVariableStatus               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_saveCurrentUserEnvironmentVariable                         : application.saveCurrentUserEnvironmentVariable                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_loadCurrentUserEnvironmentVariable                         : application.loadCurrentUserEnvironmentVariable                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_setCurrentUserEnvironmentURL                               : application.setCurrentUserEnvironmentURL                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_getCurrentUserEnvironmentURL                               : application.getCurrentUserEnvironmentURL                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_checkCurrentUserEnvironmentLocalStorageDevice              : application.checkCurrentUserEnvironmentLocalStorageDevice         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_checkCurrentUserEnvironmentLocalStorageSpace               : application.checkCurrentUserEnvironmentLocalStorageSpace          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_checkCurrentUserEnvironmentLocalStorageWriteAccess         : application.checkCurrentUserEnvironmentLocalStorageWriteAccess    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_checkCurrentUserEnvironmentLocalStorageExistence           : application.checkCurrentUserEnvironmentLocalStorageExistence      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_checkCurrentUserEnvironmentLocalStorageValidity            : application.checkCurrentUserEnvironmentLocalStorageValidity       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_getLastFrameTime                                           : application.getLastFrameTime                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_getAverageFrameTime                                        : application.getAverageFrameTime                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_setMinFrameTime                                            : application.setMinFrameTime                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_setMaxFrameTime                                            : application.setMaxFrameTime                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_getTotalFrameTime                                          : application.getTotalFrameTime                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_resetTotalFrameTime                                        : application.resetTotalFrameTime                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_resetAverageFrameTime                                      : application.resetAverageFrameTime                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_setFrameTimeFactor                                         : application.setFrameTimeFactor                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_getFrameTimeFactor                                         : application.getFrameTimeFactor                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_setOption                                                  : application.setOption                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_getOption                                                  : application.getOption                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_restart                                                    : application.restart                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_quit                                                       : application.quit                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_mightBeCracked                                             : application.mightBeCracked                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_application_flushAIEvents                                              : application.flushAIEvents                                         = __pCallback ; break ; \
                                                                                                                                                                                                                      \
    case S3DX::AIEngineAPI::CallbackID_cache_addFile                                                          : cache.addFile                                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_cache_addStreamFile                                                    : cache.addStreamFile                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_cache_getFileStatus                                                    : cache.getFileStatus                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_cache_pauseFileReceiving                                               : cache.pauseFileReceiving                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_cache_resumeFileReceiving                                              : cache.resumeFileReceiving                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_cache_cancelFileReceiving                                              : cache.cancelFileReceiving                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_cache_sendFile                                                         : cache.sendFile                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_cache_getFileSendStatus                                                : cache.getFileSendStatus                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_cache_removeFile                                                       : cache.removeFile                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_cache_getFileProperty                                                  : cache.getFileProperty                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_cache_getFileContentAsString                                           : cache.getFileContentAsString                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_cache_copyFileContent                                                  : cache.copyFileContent                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_cache_createFile                                                       : cache.createFile                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_cache_empty                                                            : cache.empty                                                       = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_camera_setFieldOfView                                                  : camera.setFieldOfView                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_getFieldOfView                                                  : camera.getFieldOfView                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_setMinViewDistance                                              : camera.setMinViewDistance                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_getMinViewDistance                                              : camera.getMinViewDistance                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_setMaxViewDistance                                              : camera.setMaxViewDistance                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_getMaxViewDistance                                              : camera.getMaxViewDistance                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_projectPoint                                                    : camera.projectPoint                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_unprojectPoint                                                  : camera.unprojectPoint                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_isPointInFrustum                                                : camera.isPointInFrustum                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_isSphereInFrustum                                               : camera.isSphereInFrustum                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_setAspectRatioScale                                             : camera.setAspectRatioScale                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_getAspectRatioScale                                             : camera.getAspectRatioScale                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_setMotionBlurFactor                                             : camera.setMotionBlurFactor                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_getMotionBlurFactor                                             : camera.getMotionBlurFactor                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_setVelocityBlurFactor                                           : camera.setVelocityBlurFactor                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_getVelocityBlurFactor                                           : camera.getVelocityBlurFactor                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_setDepthBlurFactor                                              : camera.setDepthBlurFactor                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_getDepthBlurFactor                                              : camera.getDepthBlurFactor                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_setDepthBlurFocusRangeMin                                       : camera.setDepthBlurFocusRangeMin                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_getDepthBlurFocusRangeMin                                       : camera.getDepthBlurFocusRangeMin                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_setDepthBlurFocusRangeMax                                       : camera.setDepthBlurFocusRangeMax                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_getDepthBlurFocusRangeMax                                       : camera.getDepthBlurFocusRangeMax                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_setDistortionFactor                                             : camera.setDistortionFactor                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_getDistortionFactor                                             : camera.getDistortionFactor                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_setDistortionAmplitude                                          : camera.setDistortionAmplitude                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_getDistortionAmplitude                                          : camera.getDistortionAmplitude                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_setDistortionFrequency                                          : camera.setDistortionFrequency                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_getDistortionFrequency                                          : camera.getDistortionFrequency                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_setDistortionTiling                                             : camera.setDistortionTiling                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_getDistortionTiling                                             : camera.getDistortionTiling                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_setDistortionMapFactor                                          : camera.setDistortionMapFactor                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_getDistortionMapFactor                                          : camera.getDistortionMapFactor                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_setDistortionMapAmplitude                                       : camera.setDistortionMapAmplitude                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_getDistortionMapAmplitude                                       : camera.getDistortionMapAmplitude                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_setDistortionMapUVOffset                                        : camera.setDistortionMapUVOffset                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_getDistortionMapUVOffset                                        : camera.getDistortionMapUVOffset                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_setDistortionMapUVScale                                         : camera.setDistortionMapUVScale                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_getDistortionMapUVScale                                         : camera.getDistortionMapUVScale                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_setDistortionMapAddressingMode                                  : camera.setDistortionMapAddressingMode                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_getDistortionMapAddressingMode                                  : camera.getDistortionMapAddressingMode                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_camera_setDistortionMap                                                : camera.setDistortionMap                                           = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_debug_drawLine                                                         : debug.drawLine                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_debug_getTotalMemoryUsed                                               : debug.getTotalMemoryUsed                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_debug_getLastFrameTotalDrawCalls                                       : debug.getLastFrameTotalDrawCalls                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_debug_getLastFrameTotalTriangles                                       : debug.getLastFrameTotalTriangles                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_debug_getLastFrameTotalVertices                                        : debug.getLastFrameTotalVertices                                   = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_dynamics_getBodyType                                                   : dynamics.getBodyType                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_createSphereBody                                              : dynamics.createSphereBody                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_createBoxBody                                                 : dynamics.createBoxBody                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_createCapsuleBody                                             : dynamics.createCapsuleBody                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_createCompositeBody                                           : dynamics.createCompositeBody                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_addCompositeBodySphereGeometry                                : dynamics.addCompositeBodySphereGeometry                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_addCompositeBodyBoxGeometry                                   : dynamics.addCompositeBodyBoxGeometry                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_addCompositeBodyCapsuleGeometry                               : dynamics.addCompositeBodyCapsuleGeometry                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_finalizeCompositeBody                                         : dynamics.finalizeCompositeBody                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_destroyBody                                                   : dynamics.destroyBody                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setOffset                                                     : dynamics.setOffset                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_getOffset                                                     : dynamics.getOffset                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setMass                                                       : dynamics.setMass                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_getMass                                                       : dynamics.getMass                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setFriction                                                   : dynamics.setFriction                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_getFriction                                                   : dynamics.getFriction                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setBounce                                                     : dynamics.setBounce                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_getBounce                                                     : dynamics.getBounce                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setBounceThreshold                                            : dynamics.setBounceThreshold                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_getBounceThreshold                                            : dynamics.getBounceThreshold                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setLinearDamping                                              : dynamics.setLinearDamping                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setLinearDampingEx                                            : dynamics.setLinearDampingEx                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_getLinearDamping                                              : dynamics.getLinearDamping                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setAngularDamping                                             : dynamics.setAngularDamping                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setAngularDampingEx                                           : dynamics.setAngularDampingEx                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_getAngularDamping                                             : dynamics.getAngularDamping                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_addForce                                                      : dynamics.addForce                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_addTorque                                                     : dynamics.addTorque                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_addLinearImpulse                                              : dynamics.addLinearImpulse                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_addAngularImpulse                                             : dynamics.addAngularImpulse                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_getAngularVelocity                                            : dynamics.getAngularVelocity                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setAngularVelocity                                            : dynamics.setAngularVelocity                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setAngularSpeedLimit                                          : dynamics.setAngularSpeedLimit                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_getLinearVelocity                                             : dynamics.getLinearVelocity                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setLinearVelocity                                             : dynamics.setLinearVelocity                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_getLinearSpeed                                                : dynamics.getLinearSpeed                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setLinearSpeedLimit                                           : dynamics.setLinearSpeedLimit                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setGuardBox                                                   : dynamics.setGuardBox                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_enableDynamics                                                : dynamics.enableDynamics                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_enableCollisions                                              : dynamics.enableCollisions                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_enableRotations                                               : dynamics.enableRotations                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_enableGuardBox                                                : dynamics.enableGuardBox                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_enableGravity                                                 : dynamics.enableGravity                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_enableAutoIdle                                                : dynamics.enableAutoIdle                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setAutoIdleLinearThreshold                                    : dynamics.setAutoIdleLinearThreshold                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setAutoIdleAngularThreshold                                   : dynamics.setAutoIdleAngularThreshold                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setAutoIdleTime                                               : dynamics.setAutoIdleTime                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setIdle                                                       : dynamics.setIdle                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_isIdle                                                        : dynamics.isIdle                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_getLastCollisionTime                                          : dynamics.getLastCollisionTime                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_getLastCollisionContactCount                                  : dynamics.getLastCollisionContactCount                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_getLastCollisionContactPositionAt                             : dynamics.getLastCollisionContactPositionAt                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_getLastCollisionContactNormalAt                               : dynamics.getLastCollisionContactNormalAt                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_createBallJoint                                               : dynamics.createBallJoint                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_createSliderJoint                                             : dynamics.createSliderJoint                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_createHingeJoint                                              : dynamics.createHingeJoint                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_createHinge2Joint                                             : dynamics.createHinge2Joint                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_createUniversalJoint                                          : dynamics.createUniversalJoint                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_destroyJoint                                                  : dynamics.destroyJoint                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setBallJointAnchor                                            : dynamics.setBallJointAnchor                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setSliderJointAxis                                            : dynamics.setSliderJointAxis                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setHingeJointAnchor                                           : dynamics.setHingeJointAnchor                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setHingeJointAxis                                             : dynamics.setHingeJointAxis                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setHingeJointAxisAngleLimitMin                                : dynamics.setHingeJointAxisAngleLimitMin                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setHingeJointAxisAngleLimitMax                                : dynamics.setHingeJointAxisAngleLimitMax                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setHingeJointAxisAngleLimitERP                                : dynamics.setHingeJointAxisAngleLimitERP                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setHingeJointAxisAngleLimitCFM                                : dynamics.setHingeJointAxisAngleLimitCFM                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setHinge2JointAnchor                                          : dynamics.setHinge2JointAnchor                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setHinge2JointAxis1                                           : dynamics.setHinge2JointAxis1                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setHinge2JointAxis2                                           : dynamics.setHinge2JointAxis2                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setHinge2JointAxis1AngleLimitMin                              : dynamics.setHinge2JointAxis1AngleLimitMin                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setHinge2JointAxis1AngleLimitMax                              : dynamics.setHinge2JointAxis1AngleLimitMax                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setHinge2JointAxis1AngleLimitERP                              : dynamics.setHinge2JointAxis1AngleLimitERP                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setHinge2JointAxis1AngleLimitCFM                              : dynamics.setHinge2JointAxis1AngleLimitCFM                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setHinge2JointAxis2MotorSpeedLimit                            : dynamics.setHinge2JointAxis2MotorSpeedLimit                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setHinge2JointAxis2MotorAcceleration                          : dynamics.setHinge2JointAxis2MotorAcceleration                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setHinge2JointAxis1SuspensionERP                              : dynamics.setHinge2JointAxis1SuspensionERP                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setHinge2JointAxis1SuspensionCFM                              : dynamics.setHinge2JointAxis1SuspensionCFM                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setUniversalJointAnchor                                       : dynamics.setUniversalJointAnchor                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setUniversalJointAxis1                                        : dynamics.setUniversalJointAxis1                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setUniversalJointAxis2                                        : dynamics.setUniversalJointAxis2                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setUniversalJointAxis1AngleLimitMin                           : dynamics.setUniversalJointAxis1AngleLimitMin                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setUniversalJointAxis1AngleLimitMax                           : dynamics.setUniversalJointAxis1AngleLimitMax                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setUniversalJointAxis1AngleLimitERP                           : dynamics.setUniversalJointAxis1AngleLimitERP                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setUniversalJointAxis1AngleLimitCFM                           : dynamics.setUniversalJointAxis1AngleLimitCFM                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setUniversalJointAxis2AngleLimitMin                           : dynamics.setUniversalJointAxis2AngleLimitMin                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setUniversalJointAxis2AngleLimitMax                           : dynamics.setUniversalJointAxis2AngleLimitMax                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setUniversalJointAxis2AngleLimitERP                           : dynamics.setUniversalJointAxis2AngleLimitERP                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_dynamics_setUniversalJointAxis2AngleLimitCFM                           : dynamics.setUniversalJointAxis2AngleLimitCFM                      = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_group_getSubObjectCount                                                : group.getSubObjectCount                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_group_getSubObjectAt                                                   : group.getSubObjectAt                                              = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_hashtable_isEmpty                                                      : hashtable.isEmpty                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hashtable_getSize                                                      : hashtable.getSize                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hashtable_get                                                          : hashtable.get                                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hashtable_getIndex                                                     : hashtable.getIndex                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hashtable_getAt                                                        : hashtable.getAt                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hashtable_getKeyAt                                                     : hashtable.getKeyAt                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hashtable_set                                                          : hashtable.set                                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hashtable_empty                                                        : hashtable.empty                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hashtable_add                                                          : hashtable.add                                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hashtable_remove                                                       : hashtable.remove                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hashtable_contains                                                     : hashtable.contains                                                = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_hud_checkValidity                                                      : hud.checkValidity                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_newTemplateInstance                                                : hud.newTemplateInstance                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_destroyTemplateInstance                                            : hud.destroyTemplateInstance                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_newComponent                                                       : hud.newComponent                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_newAction                                                          : hud.newAction                                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_newTimer                                                           : hud.newTimer                                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_destroyComponent                                                   : hud.destroyComponent                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_destroyAction                                                      : hud.destroyAction                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_destroyTimer                                                       : hud.destroyTimer                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponentCount                                                  : hud.getComponentCount                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getActionCount                                                     : hud.getActionCount                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getTimerCount                                                      : hud.getTimerCount                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponentAt                                                     : hud.getComponentAt                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getActionAt                                                        : hud.getActionAt                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getTimerAt                                                         : hud.getTimerAt                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setInitialAction                                                   : hud.setInitialAction                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setDefaultFont                                                     : hud.setDefaultFont                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getDefaultFontName                                                 : hud.getDefaultFontName                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setDefaultTextShadowColor                                          : hud.setDefaultTextShadowColor                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getDefaultTextShadowColor                                          : hud.getDefaultTextShadowColor                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponent                                                       : hud.getComponent                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getAction                                                          : hud.getAction                                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setFocus                                                           : hud.setFocus                                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setSoundBank                                                       : hud.setSoundBank                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getSoundBankName                                                   : hud.getSoundBankName                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_playSound                                                          : hud.playSound                                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_pauseSound                                                         : hud.pauseSound                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_resumeSound                                                        : hud.resumeSound                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_stopSound                                                          : hud.stopSound                                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_stopAllSounds                                                      : hud.stopAllSounds                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setSoundVolume                                                     : hud.setSoundVolume                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getSoundPlaybackProgress                                           : hud.getSoundPlaybackProgress                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_isSoundPlaying                                                     : hud.isSoundPlaying                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_isSoundPaused                                                      : hud.isSoundPaused                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setCursorVisible                                                   : hud.setCursorVisible                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setCursorPosition                                                  : hud.setCursorPosition                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getCursorPosition                                                  : hud.getCursorPosition                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_forceCursorShape                                                   : hud.forceCursorShape                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponentType                                                   : hud.getComponentType                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setComponentZOrder                                                 : hud.setComponentZOrder                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponentZOrder                                                 : hud.getComponentZOrder                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setComponentContainer                                              : hud.setComponentContainer                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponentContainer                                              : hud.getComponentContainer                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setComponentOrigin                                                 : hud.setComponentOrigin                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponentOrigin                                                 : hud.getComponentOrigin                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setComponentOffscreenOutput                                        : hud.setComponentOffscreenOutput                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setComponentPosition                                               : hud.setComponentPosition                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponentPosition                                               : hud.getComponentPosition                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setComponentSize                                                   : hud.setComponentSize                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponentSize                                                   : hud.getComponentSize                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setComponentRotation                                               : hud.setComponentRotation                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponentRotation                                               : hud.getComponentRotation                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setComponentOpacity                                                : hud.setComponentOpacity                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponentOpacity                                                : hud.getComponentOpacity                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setComponentVisible                                                : hud.setComponentVisible                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setComponentActive                                                 : hud.setComponentActive                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setComponentBackgroundImage                                        : hud.setComponentBackgroundImage                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponentBackgroundImageName                                    : hud.getComponentBackgroundImageName                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setComponentBackgroundColor                                        : hud.setComponentBackgroundColor                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponentBackgroundColor                                        : hud.getComponentBackgroundColor                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setComponentForegroundColor                                        : hud.setComponentForegroundColor                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponentForegroundColor                                        : hud.getComponentForegroundColor                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setComponentBorderColor                                            : hud.setComponentBorderColor                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponentBorderColor                                            : hud.getComponentBorderColor                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setComponentFillMode                                               : hud.setComponentFillMode                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponentFillMode                                               : hud.getComponentFillMode                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setComponentBlendMode                                              : hud.setComponentBlendMode                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponentBlendMode                                              : hud.getComponentBlendMode                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setComponentShapeType                                              : hud.setComponentShapeType                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponentShapeType                                              : hud.getComponentShapeType                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setComponentShapeRoundRectangleCornerRadius                        : hud.setComponentShapeRoundRectangleCornerRadius                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponentShapeRoundRectangleCornerRadius                        : hud.getComponentShapeRoundRectangleCornerRadius                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setComponentOpacityWaveModifier                                    : hud.setComponentOpacityWaveModifier                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setComponentAspectInvariant                                        : hud.setComponentAspectInvariant                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setComponentIgnoredByMouse                                         : hud.setComponentIgnoredByMouse                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setComponentAdjustedToNearestPixels                                : hud.setComponentAdjustedToNearestPixels                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_addComponentEventHandler                                           : hud.addComponentEventHandler                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_removeComponentEventHandler                                        : hud.removeComponentEventHandler                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponentScreenSpaceCenter                                      : hud.getComponentScreenSpaceCenter                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponentScreenSpaceBottomLeftCorner                            : hud.getComponentScreenSpaceBottomLeftCorner                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponentScreenSpaceTopLeftCorner                               : hud.getComponentScreenSpaceTopLeftCorner                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponentScreenSpaceBottomRightCorner                           : hud.getComponentScreenSpaceBottomRightCorner                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponentScreenSpaceTopRightCorner                              : hud.getComponentScreenSpaceTopRightCorner                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_matchComponentScreenSpaceCenter                                    : hud.matchComponentScreenSpaceCenter                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_matchComponentScreenSpaceBottomLeftCorner                          : hud.matchComponentScreenSpaceBottomLeftCorner                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_matchComponentScreenSpaceTopLeftCorner                             : hud.matchComponentScreenSpaceTopLeftCorner                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_matchComponentScreenSpaceBottomRightCorner                         : hud.matchComponentScreenSpaceBottomRightCorner                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_matchComponentScreenSpaceTopRightCorner                            : hud.matchComponentScreenSpaceTopRightCorner                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setComponentBackgroundImageUVOffset                                : hud.setComponentBackgroundImageUVOffset                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponentBackgroundImageUVOffset                                : hud.getComponentBackgroundImageUVOffset                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setComponentBackgroundImageUVScale                                 : hud.setComponentBackgroundImageUVScale                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponentBackgroundImageUVScale                                 : hud.getComponentBackgroundImageUVScale                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setComponentBackgroundImageAddressingMode                          : hud.setComponentBackgroundImageAddressingMode                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponentBackgroundImageAddressingMode                          : hud.getComponentBackgroundImageAddressingMode                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_isComponentVisible                                                 : hud.isComponentVisible                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_isComponentActive                                                  : hud.isComponentActive                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponentTag                                                    : hud.getComponentTag                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setLabelText                                                       : hud.setLabelText                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getLabelText                                                       : hud.getLabelText                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setLabelTextHeight                                                 : hud.setLabelTextHeight                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getLabelTextHeight                                                 : hud.getLabelTextHeight                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setLabelTextLetterSpacing                                          : hud.setLabelTextLetterSpacing                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getLabelTextLetterSpacing                                          : hud.getLabelTextLetterSpacing                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setLabelTextLineSpacing                                            : hud.setLabelTextLineSpacing                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getLabelTextLineSpacing                                            : hud.getLabelTextLineSpacing                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setLabelTextAlignment                                              : hud.setLabelTextAlignment                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getLabelTextAlignment                                              : hud.getLabelTextAlignment                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setLabelTextCase                                                   : hud.setLabelTextCase                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getLabelTextCase                                                   : hud.getLabelTextCase                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setLabelTextEncoding                                               : hud.setLabelTextEncoding                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getLabelTextEncoding                                               : hud.getLabelTextEncoding                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setLabelTextDirection                                              : hud.setLabelTextDirection                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getLabelTextDirection                                              : hud.getLabelTextDirection                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setLabelTextDisplayRange                                           : hud.setLabelTextDisplayRange                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getLabelTextDisplayRange                                           : hud.getLabelTextDisplayRange                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setLabelFont                                                       : hud.setLabelFont                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getLabelFontName                                                   : hud.getLabelFontName                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_enableLabelTextAntialiasing                                        : hud.enableLabelTextAntialiasing                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_isLabelTextAntialiasingEnabled                                     : hud.isLabelTextAntialiasingEnabled                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getLabelTextTotalLineCount                                         : hud.getLabelTextTotalLineCount                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setEditText                                                        : hud.setEditText                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getEditText                                                        : hud.getEditText                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setEditTextHeight                                                  : hud.setEditTextHeight                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getEditTextHeight                                                  : hud.getEditTextHeight                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setEditTextLetterSpacing                                           : hud.setEditTextLetterSpacing                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getEditTextLetterSpacing                                           : hud.getEditTextLetterSpacing                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setEditTextLineSpacing                                             : hud.setEditTextLineSpacing                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getEditTextLineSpacing                                             : hud.getEditTextLineSpacing                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setEditTextAlignment                                               : hud.setEditTextAlignment                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getEditTextAlignment                                               : hud.getEditTextAlignment                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setEditTextCase                                                    : hud.setEditTextCase                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getEditTextCase                                                    : hud.getEditTextCase                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setEditTextEncoding                                                : hud.setEditTextEncoding                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getEditTextEncoding                                                : hud.getEditTextEncoding                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setEditTextDirection                                               : hud.setEditTextDirection                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getEditTextDirection                                               : hud.getEditTextDirection                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setEditTextDisplayRange                                            : hud.setEditTextDisplayRange                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getEditTextDisplayRange                                            : hud.getEditTextDisplayRange                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setEditTextMaxLength                                               : hud.setEditTextMaxLength                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getEditTextMaxLength                                               : hud.getEditTextMaxLength                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setEditFont                                                        : hud.setEditFont                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getEditFontName                                                    : hud.getEditFontName                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setEditOnChangedAction                                             : hud.setEditOnChangedAction                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setEditSecure                                                      : hud.setEditSecure                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_isEditSecure                                                       : hud.isEditSecure                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_enableEditTextAntialiasing                                         : hud.enableEditTextAntialiasing                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_isEditTextAntialiasingEnabled                                      : hud.isEditTextAntialiasingEnabled                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getEditTextTotalLineCount                                          : hud.getEditTextTotalLineCount                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setCheckText                                                       : hud.setCheckText                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getCheckText                                                       : hud.getCheckText                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setCheckTextHeight                                                 : hud.setCheckTextHeight                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getCheckTextHeight                                                 : hud.getCheckTextHeight                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setCheckTextLetterSpacing                                          : hud.setCheckTextLetterSpacing                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getCheckTextLetterSpacing                                          : hud.getCheckTextLetterSpacing                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setCheckTextLineSpacing                                            : hud.setCheckTextLineSpacing                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getCheckTextLineSpacing                                            : hud.getCheckTextLineSpacing                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setCheckTextAlignment                                              : hud.setCheckTextAlignment                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getCheckTextAlignment                                              : hud.getCheckTextAlignment                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setCheckTextCase                                                   : hud.setCheckTextCase                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getCheckTextCase                                                   : hud.getCheckTextCase                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setCheckTextEncoding                                               : hud.setCheckTextEncoding                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getCheckTextEncoding                                               : hud.getCheckTextEncoding                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setCheckTextDirection                                              : hud.setCheckTextDirection                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getCheckTextDirection                                              : hud.getCheckTextDirection                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setCheckIcons                                                      : hud.setCheckIcons                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setCheckFont                                                       : hud.setCheckFont                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getCheckFontName                                                   : hud.getCheckFontName                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setCheckOnCheckedAction                                            : hud.setCheckOnCheckedAction                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setCheckOnUncheckedAction                                          : hud.setCheckOnUncheckedAction                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getCheckState                                                      : hud.getCheckState                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setCheckState                                                      : hud.setCheckState                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_enableCheckTextAntialiasing                                        : hud.enableCheckTextAntialiasing                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_isCheckTextAntialiasingEnabled                                     : hud.isCheckTextAntialiasingEnabled                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getCheckTextTotalLineCount                                         : hud.getCheckTextTotalLineCount                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setButtonText                                                      : hud.setButtonText                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getButtonText                                                      : hud.getButtonText                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setButtonTextHeight                                                : hud.setButtonTextHeight                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getButtonTextHeight                                                : hud.getButtonTextHeight                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setButtonTextLetterSpacing                                         : hud.setButtonTextLetterSpacing                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getButtonTextLetterSpacing                                         : hud.getButtonTextLetterSpacing                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setButtonTextLineSpacing                                           : hud.setButtonTextLineSpacing                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getButtonTextLineSpacing                                           : hud.getButtonTextLineSpacing                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setButtonTextAlignment                                             : hud.setButtonTextAlignment                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getButtonTextAlignment                                             : hud.getButtonTextAlignment                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setButtonTextCase                                                  : hud.setButtonTextCase                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getButtonTextCase                                                  : hud.getButtonTextCase                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setButtonTextEncoding                                              : hud.setButtonTextEncoding                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getButtonTextEncoding                                              : hud.getButtonTextEncoding                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setButtonTextDirection                                             : hud.setButtonTextDirection                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getButtonTextDirection                                             : hud.getButtonTextDirection                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setButtonFont                                                      : hud.setButtonFont                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getButtonFontName                                                  : hud.getButtonFontName                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setButtonOnClickAction                                             : hud.setButtonOnClickAction                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setButtonOnClickedAction                                           : hud.setButtonOnClickedAction                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_enableButtonTextAntialiasing                                       : hud.enableButtonTextAntialiasing                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_isButtonTextAntialiasingEnabled                                    : hud.isButtonTextAntialiasingEnabled                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getButtonTextTotalLineCount                                        : hud.getButtonTextTotalLineCount                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setMovieClip                                                       : hud.setMovieClip                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setMovieExternalClip                                               : hud.setMovieExternalClip                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getMovieBufferingProgress                                          : hud.getMovieBufferingProgress                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getMoviePlaybackProgress                                           : hud.getMoviePlaybackProgress                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getMoviePlaybackCursor                                             : hud.getMoviePlaybackCursor                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setMovieTransparentColor                                           : hud.setMovieTransparentColor                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_playMovie                                                          : hud.playMovie                                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_pauseMovie                                                         : hud.pauseMovie                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_stopMovie                                                          : hud.stopMovie                                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setRenderMap                                                       : hud.setRenderMap                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getRenderMapName                                                   : hud.getRenderMapName                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setPixelMap                                                        : hud.setPixelMap                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getPixelMapName                                                    : hud.getPixelMapName                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getPixelMap                                                        : hud.getPixelMap                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setProgressValue                                                   : hud.setProgressValue                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getProgressValue                                                   : hud.getProgressValue                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setProgressType                                                    : hud.setProgressType                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getProgressType                                                    : hud.getProgressType                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getListItemCount                                                   : hud.getListItemCount                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_addListItem                                                        : hud.addListItem                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_removeListItemAt                                                   : hud.removeListItemAt                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_selectListItemAt                                                   : hud.selectListItemAt                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_removeListAllItems                                                 : hud.removeListAllItems                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_selectListAllItems                                                 : hud.selectListAllItems                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getListItemTextAt                                                  : hud.getListItemTextAt                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListItemTextAt                                                  : hud.setListItemTextAt                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListItemIconAt                                                  : hud.setListItemIconAt                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListItemsHeight                                                 : hud.setListItemsHeight                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getListItemsHeight                                                 : hud.getListItemsHeight                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListItemsBackgroundImage                                        : hud.setListItemsBackgroundImage                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getListItemsBackgroundImageName                                    : hud.getListItemsBackgroundImageName                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListItemsBackgroundColor                                        : hud.setListItemsBackgroundColor                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListItemsBackgroundColorOdd                                     : hud.setListItemsBackgroundColorOdd                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getListItemsBackgroundColorOdd                                     : hud.getListItemsBackgroundColorOdd                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListItemsBackgroundColorEven                                    : hud.setListItemsBackgroundColorEven                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getListItemsBackgroundColorEven                                    : hud.getListItemsBackgroundColorEven                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListItemsBackgroundImageSelected                                : hud.setListItemsBackgroundImageSelected                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getListItemsBackgroundImageSelectedName                            : hud.getListItemsBackgroundImageSelectedName                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListItemsBackgroundColorSelected                                : hud.setListItemsBackgroundColorSelected                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getListItemsBackgroundColorSelected                                : hud.getListItemsBackgroundColorSelected                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListItemsForegroundColorSelected                                : hud.setListItemsForegroundColorSelected                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getListItemsForegroundColorSelected                                : hud.getListItemsForegroundColorSelected                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListTextLeftMargin                                              : hud.setListTextLeftMargin                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getListTextLeftMargin                                              : hud.getListTextLeftMargin                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListTextRightMargin                                             : hud.setListTextRightMargin                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getListTextRightMargin                                             : hud.getListTextRightMargin                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListTextHeight                                                  : hud.setListTextHeight                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getListTextHeight                                                  : hud.getListTextHeight                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListTextLetterSpacing                                           : hud.setListTextLetterSpacing                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getListTextLetterSpacing                                           : hud.getListTextLetterSpacing                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListTextLineSpacing                                             : hud.setListTextLineSpacing                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getListTextLineSpacing                                             : hud.getListTextLineSpacing                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListTextFont                                                    : hud.setListTextFont                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getListTextFontName                                                : hud.getListTextFontName                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListTextCase                                                    : hud.setListTextCase                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getListTextCase                                                    : hud.getListTextCase                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListTextEncoding                                                : hud.setListTextEncoding                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getListTextEncoding                                                : hud.getListTextEncoding                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListTextDirection                                               : hud.setListTextDirection                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getListTextDirection                                               : hud.getListTextDirection                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_enableListTextAntialiasing                                         : hud.enableListTextAntialiasing                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_isListTextAntialiasingEnabled                                      : hud.isListTextAntialiasingEnabled                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getListColumnCount                                                 : hud.getListColumnCount                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_addListColumn                                                      : hud.addListColumn                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListColumnTextAlignmentAt                                       : hud.setListColumnTextAlignmentAt                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListColumnWidthAt                                               : hud.setListColumnWidthAt                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_enableListSelection                                                : hud.enableListSelection                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_enableListSingleSelection                                          : hud.enableListSingleSelection                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_enableListSingleSelectionToggling                                  : hud.enableListSingleSelectionToggling                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_enableListSmoothScrolling                                          : hud.enableListSmoothScrolling                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_enableListFingerScrolling                                          : hud.enableListFingerScrolling                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_enableListMouseWheelHandling                                       : hud.enableListMouseWheelHandling                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getListSelectedItemCount                                           : hud.getListSelectedItemCount                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getListSelectedItemAt                                              : hud.getListSelectedItemAt                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListVerticalScrollPos                                           : hud.setListVerticalScrollPos                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getListVerticalScrollPos                                           : hud.getListVerticalScrollPos                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListVerticalScrollBarWidth                                      : hud.setListVerticalScrollBarWidth                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListVerticalScrollBarArrowHeight                                : hud.setListVerticalScrollBarArrowHeight                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListScrollBarBackgroundColor                                    : hud.setListScrollBarBackgroundColor                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListScrollBarForegroundColor                                    : hud.setListScrollBarForegroundColor                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListScrollBarArrowColor                                         : hud.setListScrollBarArrowColor                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListScrollBarBackgroundImages                                   : hud.setListScrollBarBackgroundImages                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListScrollBarForegroundImages                                   : hud.setListScrollBarForegroundImages                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListScrollBarArrowImages                                        : hud.setListScrollBarArrowImages                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setListOnSelectionChangedAction                                    : hud.setListOnSelectionChangedAction                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setSliderType                                                      : hud.setSliderType                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getSliderType                                                      : hud.getSliderType                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setSliderRange                                                     : hud.setSliderRange                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getSliderRange                                                     : hud.getSliderRange                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setSliderValue                                                     : hud.setSliderValue                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getSliderValue                                                     : hud.getSliderValue                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setSliderThumbImage                                                : hud.setSliderThumbImage                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setSliderOnChangedAction                                           : hud.setSliderOnChangedAction                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_beginActionCommand                                                 : hud.beginActionCommand                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_pushActionCommandArgument                                          : hud.pushActionCommandArgument                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_pushActionCommandRuntimeArgument                                   : hud.pushActionCommandRuntimeArgument                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_endActionCommand                                                   : hud.endActionCommand                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setTimerOnTickAction                                               : hud.setTimerOnTickAction                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_setTimerTickTime                                                   : hud.setTimerTickTime                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_startTimer                                                         : hud.startTimer                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_stopTimer                                                          : hud.stopTimer                                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_callAction                                                         : hud.callAction                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_stopAction                                                         : hud.stopAction                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_pauseAction                                                        : hud.pauseAction                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_resumeAction                                                       : hud.resumeAction                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_stopAllActions                                                     : hud.stopAllActions                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_pauseAllActions                                                    : hud.pauseAllActions                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_resumeAllActions                                                   : hud.resumeAllActions                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_isActionRunning                                                    : hud.isActionRunning                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_isActionPaused                                                     : hud.isActionPaused                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getUnderCursorComponent                                            : hud.getUnderCursorComponent                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getUnderCursorListItem                                             : hud.getUnderCursorListItem                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getFocusedComponent                                                : hud.getFocusedComponent                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_enterModalMode                                                     : hud.enterModalMode                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_leaveModalMode                                                     : hud.leaveModalMode                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_hud_getComponentAtPoint                                                : hud.getComponentAtPoint                                           = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_input_setJoypadVibrationsMagnitude                                     : input.setJoypadVibrationsMagnitude                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_input_getJoypadType                                                    : input.getJoypadType                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_input_enableJoypadMotionSensors                                        : input.enableJoypadMotionSensors                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_input_enableJoypadIRMotionSensors                                      : input.enableJoypadIRMotionSensors                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_input_enableMultiTouch                                                 : input.enableMultiTouch                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_input_enableVirtualMouse                                               : input.enableVirtualMouse                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_input_setVirtualMousePosition                                          : input.setVirtualMousePosition                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_input_setVirtualMouseButtonDown                                        : input.setVirtualMouseButtonDown                                   = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_light_getType                                                          : light.getType                                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_light_isDynamic                                                        : light.isDynamic                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_light_isActive                                                         : light.isActive                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_light_setActive                                                        : light.setActive                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_light_setColor                                                         : light.setColor                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_light_getColor                                                         : light.getColor                                                    = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_log_message                                                            : log.message                                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_log_warning                                                            : log.warning                                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_log_error                                                              : log.error                                                         = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_math_clamp                                                             : math.clamp                                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_interpolate                                                       : math.interpolate                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_sin                                                               : math.sin                                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_cos                                                               : math.cos                                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_tan                                                               : math.tan                                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_asin                                                              : math.asin                                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_acos                                                              : math.acos                                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_atan                                                              : math.atan                                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_atan2                                                             : math.atan2                                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_min                                                               : math.min                                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_max                                                               : math.max                                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_sqrt                                                              : math.sqrt                                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_resetRandomSeed                                                   : math.resetRandomSeed                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_random                                                            : math.random                                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_gaussianRandom                                                    : math.gaussianRandom                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_pow                                                               : math.pow                                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_floor                                                             : math.floor                                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_trunc                                                             : math.trunc                                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_roundToNearestInteger                                             : math.roundToNearestInteger                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_roundToNearestPowerOfTwo                                          : math.roundToNearestPowerOfTwo                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_ceil                                                              : math.ceil                                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_abs                                                               : math.abs                                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_mod                                                               : math.mod                                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_log                                                               : math.log                                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_log10                                                             : math.log10                                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_evaluateBSpline                                                   : math.evaluateBSpline                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_evaluateBezier                                                    : math.evaluateBezier                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_evaluateCatmullRom                                                : math.evaluateCatmullRom                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_computeRayPlaneIntersection                                       : math.computeRayPlaneIntersection                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_computeRaySphereIntersection                                      : math.computeRaySphereIntersection                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_computeRayAABoxIntersection                                       : math.computeRayAABoxIntersection                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_vectorAdd                                                         : math.vectorAdd                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_vectorSubtract                                                    : math.vectorSubtract                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_vectorDotProduct                                                  : math.vectorDotProduct                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_vectorCrossProduct                                                : math.vectorCrossProduct                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_vectorNormalize                                                   : math.vectorNormalize                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_vectorLength                                                      : math.vectorLength                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_vectorScale                                                       : math.vectorScale                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_vectorInterpolate                                                 : math.vectorInterpolate                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_vectorReflect                                                     : math.vectorReflect                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_math_vectorSetLength                                                   : math.vectorSetLength                                              = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_mesh_getSubsetCount                                                    : mesh.getSubsetCount                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_getSubsetVertexCount                                              : mesh.getSubsetVertexCount                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_getSubsetIndexCount                                               : mesh.getSubsetIndexCount                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_getSubsetLODCount                                                 : mesh.getSubsetLODCount                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_addSubset                                                         : mesh.addSubset                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_removeSubset                                                      : mesh.removeSubset                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_createSubsetVertexBuffer                                          : mesh.createSubsetVertexBuffer                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_destroySubsetVertexBuffer                                         : mesh.destroySubsetVertexBuffer                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_createSubsetIndexBuffer                                           : mesh.createSubsetIndexBuffer                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_destroySubsetIndexBuffer                                          : mesh.destroySubsetIndexBuffer                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_lockSubsetVertexBuffer                                            : mesh.lockSubsetVertexBuffer                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_unlockSubsetVertexBuffer                                          : mesh.unlockSubsetVertexBuffer                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_lockSubsetIndexBuffer                                             : mesh.lockSubsetIndexBuffer                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_unlockSubsetIndexBuffer                                           : mesh.unlockSubsetIndexBuffer                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_setSubsetVertexPosition                                           : mesh.setSubsetVertexPosition                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_getSubsetVertexPosition                                           : mesh.getSubsetVertexPosition                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_setSubsetVertexNormal                                             : mesh.setSubsetVertexNormal                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_getSubsetVertexNormal                                             : mesh.getSubsetVertexNormal                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_setSubsetVertexTexCoord                                           : mesh.setSubsetVertexTexCoord                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_getSubsetVertexTexCoord                                           : mesh.getSubsetVertexTexCoord                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_setSubsetIndexValue                                               : mesh.setSubsetIndexValue                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_getSubsetIndexValue                                               : mesh.getSubsetIndexValue                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_getResourceHandle                                                 : mesh.getResourceHandle                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_setSubsetVertexBufferDynamic                                      : mesh.setSubsetVertexBufferDynamic                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_isSubsetVertexBufferDynamic                                       : mesh.isSubsetVertexBufferDynamic                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_setSubsetIndexBufferDynamic                                       : mesh.setSubsetIndexBufferDynamic                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_isSubsetIndexBufferDynamic                                        : mesh.isSubsetIndexBufferDynamic                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_computeSubsetVertexNormals                                        : mesh.computeSubsetVertexNormals                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_computeSubsetVertexTangents                                       : mesh.computeSubsetVertexTangents                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_mesh_updateBoundingVolumes                                             : mesh.updateBoundingVolumes                                        = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_microphone_setRate                                                     : microphone.setRate                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_microphone_enable                                                      : microphone.enable                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_microphone_getActivityLevel                                            : microphone.getActivityLevel                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_microphone_enableSpectrumAnalyzer                                      : microphone.enableSpectrumAnalyzer                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_microphone_setSpectrumWidth                                            : microphone.setSpectrumWidth                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_microphone_getSpectrumWidth                                            : microphone.getSpectrumWidth                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_microphone_getSpectrumLevels                                           : microphone.getSpectrumLevels                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_microphone_setRecordingQuality                                         : microphone.setRecordingQuality                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_microphone_startRecordingAsMusic                                       : microphone.startRecordingAsMusic                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_microphone_stopRecording                                               : microphone.stopRecording                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_microphone_startDiffusion                                              : microphone.startDiffusion                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_microphone_stopDiffusion                                               : microphone.stopDiffusion                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_microphone_addUserToDiffusionList                                      : microphone.addUserToDiffusionList                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_microphone_removeUserFromDiffusionList                                 : microphone.removeUserFromDiffusionList                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_microphone_isUserInDiffusionList                                       : microphone.isUserInDiffusionList                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_microphone_emptyDiffusionList                                          : microphone.emptyDiffusionList                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_microphone_getDiffusionListUserCount                                   : microphone.getDiffusionListUserCount                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_microphone_getDiffusionListUserIDAt                                    : microphone.getDiffusionListUserIDAt                               = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_music_play                                                             : music.play                                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_music_stop                                                             : music.stop                                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_music_setVolume                                                        : music.setVolume                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_music_getPlaybackProgress                                              : music.getPlaybackProgress                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_music_playAdditional                                                   : music.playAdditional                                              = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_navigation_setTargetNode                                               : navigation.setTargetNode                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_navigation_setAcceleration                                             : navigation.setAcceleration                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_navigation_getAcceleration                                             : navigation.getAcceleration                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_navigation_setSpeedLimit                                               : navigation.setSpeedLimit                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_navigation_getSpeedLimit                                               : navigation.getSpeedLimit                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_navigation_setHeightOffset                                             : navigation.setHeightOffset                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_navigation_getHeightOffset                                             : navigation.getHeightOffset                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_navigation_getNode                                                     : navigation.getNode                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_navigation_getTargetNode                                               : navigation.getTargetNode                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_navigation_getTargetNodeDistance                                       : navigation.getTargetNodeDistance                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_navigation_getSpeed                                                    : navigation.getSpeed                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_navigation_getVelocity                                                 : navigation.getVelocity                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_navigation_setRandomTargetNode                                         : navigation.setRandomTargetNode                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_navigation_setNearestTargetNode                                        : navigation.setNearestTargetNode                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_navigation_setNearestNode                                              : navigation.setNearestNode                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_navigation_setPathMaxLength                                            : navigation.setPathMaxLength                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_navigation_getPathMaxLength                                            : navigation.getPathMaxLength                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_navigation_getPathNodeCount                                            : navigation.getPathNodeCount                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_navigation_getPathNodeAt                                               : navigation.getPathNodeAt                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_navigation_enableNodesInBox                                            : navigation.enableNodesInBox                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_navigation_enableNode                                                  : navigation.enableNode                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_navigation_getNodeTranslation                                          : navigation.getNodeTranslation                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_navigation_isNodeOnBorder                                              : navigation.isNodeOnBorder                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_navigation_isNodeEnabled                                               : navigation.isNodeEnabled                                          = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_network_authenticate                                                   : network.authenticate                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_network_disconnect                                                     : network.disconnect                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_network_getStatus                                                      : network.getStatus                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_network_getServerCount                                                 : network.getServerCount                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_network_getServerNameAt                                                : network.getServerNameAt                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_network_setCurrentServer                                               : network.setCurrentServer                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_network_getCurrentServer                                               : network.getCurrentServer                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_network_createServer                                                   : network.createServer                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_network_searchForServers                                               : network.searchForServers                                          = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_object_getHashCode                                                     : object.getHashCode                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_isEqualTo                                                       : object.isEqualTo                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_isKindOf                                                        : object.isKindOf                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_hasController                                                   : object.hasController                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_getScene                                                        : object.getScene                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_getParent                                                       : object.getParent                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_setParent                                                       : object.setParent                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_getModelName                                                    : object.getModelName                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_enableDistanceClipping                                          : object.enableDistanceClipping                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_setDistanceClippingThresholds                                   : object.setDistanceClippingThresholds                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_setDistanceClippingFadeTime                                     : object.setDistanceClippingFadeTime                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_setCanBeReflected                                               : object.setCanBeReflected                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_setCanBeRefracted                                               : object.setCanBeRefracted                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_canBeReflected                                                  : object.canBeReflected                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_canBeRefracted                                                  : object.canBeRefracted                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_sendEvent                                                       : object.sendEvent                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_postEvent                                                       : object.postEvent                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_setTransformOption                                              : object.setTransformOption                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_getTransformOption                                              : object.getTransformOption                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_getTranslation                                                  : object.getTranslation                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_getRotation                                                     : object.getRotation                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_getScale                                                        : object.getScale                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_getDirection                                                    : object.getDirection                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_getXAxis                                                        : object.getXAxis                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_getYAxis                                                        : object.getYAxis                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_getZAxis                                                        : object.getZAxis                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_resetTranslation                                                : object.resetTranslation                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_matchTranslation                                                : object.matchTranslation                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_setTranslation                                                  : object.setTranslation                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_translate                                                       : object.translate                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_translateTo                                                     : object.translateTo                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_resetRotation                                                   : object.resetRotation                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_matchRotation                                                   : object.matchRotation                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_setRotation                                                     : object.setRotation                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_setRotationYPR                                                  : object.setRotationYPR                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_setRotationAxisAngle                                            : object.setRotationAxisAngle                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_rotate                                                          : object.rotate                                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_rotateYPR                                                       : object.rotateYPR                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_rotateAxisAngle                                                 : object.rotateAxisAngle                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_rotateTo                                                        : object.rotateTo                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_rotateToYPR                                                     : object.rotateToYPR                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_rotateToAxisAngle                                               : object.rotateToAxisAngle                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_rotateAround                                                    : object.rotateAround                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_lookAt                                                          : object.lookAt                                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_lookAtWithUp                                                    : object.lookAtWithUp                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_setUniformScale                                                 : object.setUniformScale                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_setScale                                                        : object.setScale                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_isActive                                                        : object.isActive                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_setVisible                                                      : object.setVisible                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_isVisible                                                       : object.isVisible                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_getDistanceToObject                                             : object.getDistanceToObject                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_getBoundingSphereRadius                                         : object.getBoundingSphereRadius                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_getBoundingSphereCenter                                         : object.getBoundingSphereCenter                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_getBoundingBoxMin                                               : object.getBoundingBoxMin                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_getBoundingBoxMax                                               : object.getBoundingBoxMax                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_addAIModel                                                      : object.addAIModel                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_removeAIModel                                                   : object.removeAIModel                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_getAIModelCount                                                 : object.getAIModelCount                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_getAIModelNameAt                                                : object.getAIModelNameAt                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_hasAIModel                                                      : object.hasAIModel                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_hasAIEventHandler                                               : object.hasAIEventHandler                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_getAIVariable                                                   : object.getAIVariable                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_setAIVariable                                                   : object.setAIVariable                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_getAIState                                                      : object.getAIState                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_setSoundBank                                                    : object.setSoundBank                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_setAnimBank                                                     : object.setAnimBank                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_transformVector                                                 : object.transformVector                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_transformPoint                                                  : object.transformPoint                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_getChildCount                                                   : object.getChildCount                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_object_getChildAt                                                      : object.getChildAt                                                 = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_pixelmap_getResourceHandle                                             : pixelmap.getResourceHandle                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_pixelmap_getWidth                                                      : pixelmap.getWidth                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_pixelmap_getHeight                                                     : pixelmap.getHeight                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_pixelmap_lock                                                          : pixelmap.lock                                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_pixelmap_unlock                                                        : pixelmap.unlock                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_pixelmap_setPixel                                                      : pixelmap.setPixel                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_pixelmap_getPixel                                                      : pixelmap.getPixel                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_pixelmap_setPixels                                                     : pixelmap.setPixels                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_pixelmap_getPixels                                                     : pixelmap.getPixels                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_pixelmap_createBrushFromTexture                                        : pixelmap.createBrushFromTexture                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_pixelmap_createBrushFromRectangle                                      : pixelmap.createBrushFromRectangle                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_pixelmap_destroyBrush                                                  : pixelmap.destroyBrush                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_pixelmap_getBrushCount                                                 : pixelmap.getBrushCount                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_pixelmap_getBrushOrigin                                                : pixelmap.getBrushOrigin                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_pixelmap_setBrushOrigin                                                : pixelmap.setBrushOrigin                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_pixelmap_getBrushWidth                                                 : pixelmap.getBrushWidth                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_pixelmap_getBrushHeight                                                : pixelmap.getBrushHeight                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_pixelmap_setPenColor                                                   : pixelmap.setPenColor                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_pixelmap_setPenBrush                                                   : pixelmap.setPenBrush                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_pixelmap_setPenMode                                                    : pixelmap.setPenMode                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_pixelmap_setFillColor                                                  : pixelmap.setFillColor                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_pixelmap_setFillBrush                                                  : pixelmap.setFillBrush                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_pixelmap_setFillMode                                                   : pixelmap.setFillMode                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_pixelmap_setBlendMode                                                  : pixelmap.setBlendMode                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_pixelmap_drawPoint                                                     : pixelmap.drawPoint                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_pixelmap_drawLine                                                      : pixelmap.drawLine                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_pixelmap_drawRectangle                                                 : pixelmap.drawRectangle                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_pixelmap_saveToTexture                                                 : pixelmap.saveToTexture                                            = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_projector_setColor                                                     : projector.setColor                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_projector_getColor                                                     : projector.getColor                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_projector_setOpacity                                                   : projector.setOpacity                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_projector_getOpacity                                                   : projector.getOpacity                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_projector_setFieldOfView                                               : projector.setFieldOfView                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_projector_getFieldOfView                                               : projector.getFieldOfView                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_projector_setMinClipDistance                                           : projector.setMinClipDistance                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_projector_getMinClipDistance                                           : projector.getMinClipDistance                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_projector_setMaxClipDistance                                           : projector.setMaxClipDistance                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_projector_getMaxClipDistance                                           : projector.getMaxClipDistance                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_projector_setMap                                                       : projector.setMap                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_projector_playMapMovie                                                 : projector.playMapMovie                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_projector_pauseMapMovie                                                : projector.pauseMapMovie                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_projector_stopMapMovie                                                 : projector.stopMapMovie                                            = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_scene_getName                                                          : scene.getName                                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getUserCount                                                     : scene.getUserCount                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getUserAt                                                        : scene.getUserAt                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_sendEventToAllUsers                                              : scene.sendEventToAllUsers                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_sendEventToAllObjects                                            : scene.sendEventToAllObjects                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getTaggedObjectCount                                             : scene.getTaggedObjectCount                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getTaggedObjectAt                                                : scene.getTaggedObjectAt                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getTaggedObjectTagAt                                             : scene.getTaggedObjectTagAt                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getTaggedObject                                                  : scene.getTaggedObject                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getObjectTag                                                     : scene.getObjectTag                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setRuntimeObjectTag                                              : scene.setRuntimeObjectTag                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_createRuntimeObject                                              : scene.createRuntimeObject                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_destroyRuntimeObject                                             : scene.destroyRuntimeObject                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_combineRuntimeObjectsGroup                                       : scene.combineRuntimeObjectsGroup                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setBackgroundColor                                               : scene.setBackgroundColor                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getBackgroundColor                                               : scene.getBackgroundColor                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setBackgroundOpacity                                             : scene.setBackgroundOpacity                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getBackgroundOpacity                                             : scene.getBackgroundOpacity                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setBackgroundTexture                                             : scene.setBackgroundTexture                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setBackgroundTextureUVOffset                                     : scene.setBackgroundTextureUVOffset                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setBackgroundTextureUVScale                                      : scene.setBackgroundTextureUVScale                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setBackgroundTextureAddressingMode                               : scene.setBackgroundTextureAddressingMode                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setBackgroundTextureFilteringMode                                : scene.setBackgroundTextureFilteringMode                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setSkyBoxColor                                                   : scene.setSkyBoxColor                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getSkyBoxColor                                                   : scene.getSkyBoxColor                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setSkyBoxFaceMap                                                 : scene.setSkyBoxFaceMap                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setAmbientColor                                                  : scene.setAmbientColor                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getAmbientColor                                                  : scene.getAmbientColor                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setShadowAmbientColor                                            : scene.setShadowAmbientColor                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getShadowAmbientColor                                            : scene.getShadowAmbientColor                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setFogDensity                                                    : scene.setFogDensity                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getFogDensity                                                    : scene.getFogDensity                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setFogColor                                                      : scene.setFogColor                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getFogColor                                                      : scene.getFogColor                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_createOcean                                                      : scene.createOcean                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_destroyOcean                                                     : scene.destroyOcean                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setOceanWavesAmplitude                                           : scene.setOceanWavesAmplitude                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getOceanWavesAmplitude                                           : scene.getOceanWavesAmplitude                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setOceanWavesMeanHeight                                          : scene.setOceanWavesMeanHeight                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getOceanWavesMeanHeight                                          : scene.getOceanWavesMeanHeight                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setOceanWavesFrequency                                           : scene.setOceanWavesFrequency                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getOceanWavesFrequency                                           : scene.getOceanWavesFrequency                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setOceanUnderwaterFogDensity                                     : scene.setOceanUnderwaterFogDensity                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getOceanUnderwaterFogDensity                                     : scene.getOceanUnderwaterFogDensity                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setOceanUnderwaterFogColor                                       : scene.setOceanUnderwaterFogColor                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getOceanUnderwaterFogColor                                       : scene.getOceanUnderwaterFogColor                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setOceanSurfaceColor                                             : scene.setOceanSurfaceColor                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getOceanSurfaceColor                                             : scene.getOceanSurfaceColor                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setOceanSurfaceColorFactor                                       : scene.setOceanSurfaceColorFactor                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getOceanSurfaceColorFactor                                       : scene.getOceanSurfaceColorFactor                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setOceanSurfaceColorMaxDistance                                  : scene.setOceanSurfaceColorMaxDistance                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getOceanSurfaceColorMaxDistance                                  : scene.getOceanSurfaceColorMaxDistance                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getOceanHeight                                                   : scene.getOceanHeight                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getOceanNormal                                                   : scene.getOceanNormal                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setOceanFoamMap                                                  : scene.setOceanFoamMap                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setOceanFoamMapTiling                                            : scene.setOceanFoamMapTiling                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getOceanFoamMapTiling                                            : scene.getOceanFoamMapTiling                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setOceanNormalMapTiling                                          : scene.setOceanNormalMapTiling                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getOceanNormalMapTiling                                          : scene.getOceanNormalMapTiling                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setOceanReflectionNoiseScale                                     : scene.setOceanReflectionNoiseScale                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getOceanReflectionNoiseScale                                     : scene.getOceanReflectionNoiseScale                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setOceanRefractionNoiseScale                                     : scene.setOceanRefractionNoiseScale                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getOceanRefractionNoiseScale                                     : scene.getOceanRefractionNoiseScale                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setOceanFresnelPower                                             : scene.setOceanFresnelPower                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getOceanFresnelPower                                             : scene.getOceanFresnelPower                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setOceanFresnelBias                                              : scene.setOceanFresnelBias                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getOceanFresnelBias                                              : scene.getOceanFresnelBias                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setOceanReflectorBias                                            : scene.setOceanReflectorBias                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getOceanReflectorBias                                            : scene.getOceanReflectorBias                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setColorLevels                                                   : scene.setColorLevels                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getColorLevels                                                   : scene.getColorLevels                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setColorSaturation                                               : scene.setColorSaturation                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getColorSaturation                                               : scene.getColorSaturation                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setColorContrast                                                 : scene.setColorContrast                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getColorContrast                                                 : scene.getColorContrast                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setMonochromeFilter                                              : scene.setMonochromeFilter                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getMonochromeFilter                                              : scene.getMonochromeFilter                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setBloomIntensity                                                : scene.setBloomIntensity                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getBloomIntensity                                                : scene.getBloomIntensity                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setBloomThreshold                                                : scene.setBloomThreshold                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getBloomThreshold                                                : scene.getBloomThreshold                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setBloomColoring                                                 : scene.setBloomColoring                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getBloomColoring                                                 : scene.getBloomColoring                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setBloomMotionBlurFactor                                         : scene.setBloomMotionBlurFactor                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getBloomMotionBlurFactor                                         : scene.getBloomMotionBlurFactor                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getObjectCount                                                   : scene.getObjectCount                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getObjectAt                                                      : scene.getObjectAt                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getFirstHitCollider                                              : scene.getFirstHitCollider                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getFirstHitColliderEx                                            : scene.getFirstHitColliderEx                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getFirstHitColliderWithID                                        : scene.getFirstHitColliderWithID                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getFirstHitColliderWithIDEx                                      : scene.getFirstHitColliderWithIDEx                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getFirstHitSensor                                                : scene.getFirstHitSensor                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getFirstHitSensorWithID                                          : scene.getFirstHitSensorWithID                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getFirstHitSensorWithIDInRange                                   : scene.getFirstHitSensorWithIDInRange                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getFirstHitTerrainChunk                                          : scene.getFirstHitTerrainChunk                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getTerrainHeight                                                 : scene.getTerrainHeight                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getTerrainNormal                                                 : scene.getTerrainNormal                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getTerrainStatus                                                 : scene.getTerrainStatus                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setTerrainTextureFilteringMode                                   : scene.setTerrainTextureFilteringMode                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setTerrainLODSwitchThreshold                                     : scene.setTerrainLODSwitchThreshold                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setTerrainVegetationLayerMaxVisibleInstances                     : scene.setTerrainVegetationLayerMaxVisibleInstances                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setTerrainVegetationLayerVisible                                 : scene.setTerrainVegetationLayerVisible                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setTerrainVegetationLayerTextureFilteringMode                    : scene.setTerrainVegetationLayerTextureFilteringMode               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getTerrainVegetationLayerCount                                   : scene.getTerrainVegetationLayerCount                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setDynamicsTimeStep                                              : scene.setDynamicsTimeStep                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getDynamicsTimeStep                                              : scene.getDynamicsTimeStep                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setDynamicsIterationsPerStep                                     : scene.setDynamicsIterationsPerStep                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getDynamicsIterationsPerStep                                     : scene.getDynamicsIterationsPerStep                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setDynamicsGravity                                               : scene.setDynamicsGravity                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getDynamicsGravity                                               : scene.getDynamicsGravity                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setPaused                                                        : scene.setPaused                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setPerPixelLightingMinScreenSize                                 : scene.setPerPixelLightingMinScreenSize                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getPerPixelLightingMinScreenSize                                 : scene.getPerPixelLightingMinScreenSize                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setNormalMappingMinScreenSize                                    : scene.setNormalMappingMinScreenSize                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getNormalMappingMinScreenSize                                    : scene.getNormalMappingMinScreenSize                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setNormalMappingFadeScreenSize                                   : scene.setNormalMappingFadeScreenSize                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getNormalMappingFadeScreenSize                                   : scene.getNormalMappingFadeScreenSize                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setSpecularLightingMinScreenSize                                 : scene.setSpecularLightingMinScreenSize                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getSpecularLightingMinScreenSize                                 : scene.getSpecularLightingMinScreenSize                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setSpecularLightingFadeScreenSize                                : scene.setSpecularLightingFadeScreenSize                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getSpecularLightingFadeScreenSize                                : scene.getSpecularLightingFadeScreenSize                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setDynamicShadowsFadeDistance                                    : scene.setDynamicShadowsFadeDistance                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getDynamicShadowsFadeDistance                                    : scene.getDynamicShadowsFadeDistance                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_setDynamicShadowsMaxDistance                                     : scene.setDynamicShadowsMaxDistance                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_scene_getDynamicShadowsMaxDistance                                     : scene.getDynamicShadowsMaxDistance                                = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_sensor_getCount                                                        : sensor.getCount                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sensor_setActiveAt                                                     : sensor.setActiveAt                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sensor_isActiveAt                                                      : sensor.isActiveAt                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sensor_setAllActive                                                    : sensor.setAllActive                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sensor_removeAll                                                       : sensor.removeAll                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sensor_removeAt                                                        : sensor.removeAt                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sensor_add                                                             : sensor.add                                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sensor_getIDAt                                                         : sensor.getIDAt                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sensor_setIDAt                                                         : sensor.setIDAt                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sensor_getShapeTypeAt                                                  : sensor.getShapeTypeAt                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sensor_setSphereCenterAt                                               : sensor.setSphereCenterAt                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sensor_setSphereRadiusAt                                               : sensor.setSphereRadiusAt                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sensor_getSphereCenterAt                                               : sensor.getSphereCenterAt                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sensor_getSphereRadiusAt                                               : sensor.getSphereRadiusAt                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sensor_setBoxCenterAt                                                  : sensor.setBoxCenterAt                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sensor_setBoxSizeAt                                                    : sensor.setBoxSizeAt                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sensor_getBoxCenterAt                                                  : sensor.getBoxCenterAt                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sensor_getBoxSizeAt                                                    : sensor.getBoxSizeAt                                               = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_server_getStatus                                                       : server.getStatus                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_server_getName                                                         : server.getName                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_server_getCurrentPingDelay                                             : server.getCurrentPingDelay                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_server_getAveragePingDelay                                             : server.getAveragePingDelay                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_server_getSessionCount                                                 : server.getSessionCount                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_server_getSessionNameAt                                                : server.getSessionNameAt                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_server_getSessionUserCountAt                                           : server.getSessionUserCountAt                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_server_setCurrentSession                                               : server.setCurrentSession                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_server_getCurrentSession                                               : server.getCurrentSession                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_server_sendEvent                                                       : server.sendEvent                                                  = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_session_getStatus                                                      : session.getStatus                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_session_getName                                                        : session.getName                                                   = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_sfx_getParticleEmitterCount                                            : sfx.getParticleEmitterCount                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sfx_startParticleEmitterAt                                             : sfx.startParticleEmitterAt                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sfx_startAllParticleEmitters                                           : sfx.startAllParticleEmitters                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sfx_stopParticleEmitterAt                                              : sfx.stopParticleEmitterAt                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sfx_stopAllParticleEmitters                                            : sfx.stopAllParticleEmitters                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sfx_pauseParticleEmitterAt                                             : sfx.pauseParticleEmitterAt                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sfx_pauseAllParticleEmitters                                           : sfx.pauseAllParticleEmitters                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sfx_setParticleEmitterTranslationAt                                    : sfx.setParticleEmitterTranslationAt                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sfx_setParticleEmitterRotationAt                                       : sfx.setParticleEmitterRotationAt                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sfx_setParticleEmitterUniformScaleAt                                   : sfx.setParticleEmitterUniformScaleAt                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sfx_setParticleEmitterGenerationRateAt                                 : sfx.setParticleEmitterGenerationRateAt                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sfx_setParticleEmitterLifeTimeFactorAt                                 : sfx.setParticleEmitterLifeTimeFactorAt                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sfx_setParticleEmitterInitialSpeedFactorAt                             : sfx.setParticleEmitterInitialSpeedFactorAt                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sfx_getParticleEmitterUniformScaleAt                                   : sfx.getParticleEmitterUniformScaleAt                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sfx_getParticleEmitterGenerationRateAt                                 : sfx.getParticleEmitterGenerationRateAt                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sfx_getParticleEmitterLifeTimeFactorAt                                 : sfx.getParticleEmitterLifeTimeFactorAt                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sfx_getParticleEmitterInitialSpeedFactorAt                             : sfx.getParticleEmitterInitialSpeedFactorAt                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sfx_getParticleEmitterAliveParticleCountAt                             : sfx.getParticleEmitterAliveParticleCountAt                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sfx_getTrailCount                                                      : sfx.getTrailCount                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sfx_setTrailAnchor0At                                                  : sfx.setTrailAnchor0At                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sfx_setTrailAnchor1At                                                  : sfx.setTrailAnchor1At                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sfx_startTrailAt                                                       : sfx.startTrailAt                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sfx_pauseTrailAt                                                       : sfx.pauseTrailAt                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sfx_stopTrailAt                                                        : sfx.stopTrailAt                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sfx_startAllTrails                                                     : sfx.startAllTrails                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sfx_pauseAllTrails                                                     : sfx.pauseAllTrails                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sfx_stopAllTrails                                                      : sfx.stopAllTrails                                                 = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_shape_setMeshOpacity                                                   : shape.setMeshOpacity                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshOpacity                                                   : shape.getMeshOpacity                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshSubsetCount                                               : shape.getMeshSubsetCount                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_setMeshSubsetMaterial                                            : shape.setMeshSubsetMaterial                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshSubsetMaterialName                                        : shape.getMeshSubsetMaterialName                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_setMeshMaterial                                                  : shape.setMeshMaterial                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_compareMeshSubsetMaterial                                        : shape.compareMeshSubsetMaterial                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_enableMeshFrustumCulling                                         : shape.enableMeshFrustumCulling                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_overrideMeshSubsetMaterialEmissive                               : shape.overrideMeshSubsetMaterialEmissive                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_overrideMeshSubsetMaterialAmbient                                : shape.overrideMeshSubsetMaterialAmbient                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_overrideMeshSubsetMaterialDiffuse                                : shape.overrideMeshSubsetMaterialDiffuse                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_overrideMeshSubsetMaterialSpecular                               : shape.overrideMeshSubsetMaterialSpecular                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_overrideMeshSubsetMaterialOpacity                                : shape.overrideMeshSubsetMaterialOpacity                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_overrideMeshSubsetMaterialOpacityThreshold                       : shape.overrideMeshSubsetMaterialOpacityThreshold                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_overrideMeshSubsetMaterialEffectIntensity                        : shape.overrideMeshSubsetMaterialEffectIntensity                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshSubsetMaterialEmissiveOverride                            : shape.getMeshSubsetMaterialEmissiveOverride                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshSubsetMaterialAmbientOverride                             : shape.getMeshSubsetMaterialAmbientOverride                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshSubsetMaterialDiffuseOverride                             : shape.getMeshSubsetMaterialDiffuseOverride                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshSubsetMaterialSpecularOverride                            : shape.getMeshSubsetMaterialSpecularOverride                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshSubsetMaterialOpacityOverride                             : shape.getMeshSubsetMaterialOpacityOverride                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshSubsetMaterialOpacityThresholdOverride                    : shape.getMeshSubsetMaterialOpacityThresholdOverride               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshSubsetMaterialEffectIntensityOverride                     : shape.getMeshSubsetMaterialEffectIntensityOverride                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_overrideMeshMaterialEmissive                                     : shape.overrideMeshMaterialEmissive                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_overrideMeshMaterialAmbient                                      : shape.overrideMeshMaterialAmbient                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_overrideMeshMaterialDiffuse                                      : shape.overrideMeshMaterialDiffuse                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_overrideMeshMaterialSpecular                                     : shape.overrideMeshMaterialSpecular                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_overrideMeshSubsetMaterialEffectMap0                             : shape.overrideMeshSubsetMaterialEffectMap0                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_overrideMeshMaterialEffectMap0                                   : shape.overrideMeshMaterialEffectMap0                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_overrideMeshSubsetMaterialEffectMap1                             : shape.overrideMeshSubsetMaterialEffectMap1                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_overrideMeshMaterialEffectMap1                                   : shape.overrideMeshMaterialEffectMap1                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_overrideMeshSubsetMaterialNormalMap                              : shape.overrideMeshSubsetMaterialNormalMap                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_overrideMeshMaterialNormalMap                                    : shape.overrideMeshMaterialNormalMap                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_overrideMeshSubsetMaterialSpecularMap                            : shape.overrideMeshSubsetMaterialSpecularMap                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_overrideMeshMaterialSpecularMap                                  : shape.overrideMeshMaterialSpecularMap                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshSubsetMaterialEffectMap0                                  : shape.getMeshSubsetMaterialEffectMap0                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshSubsetMaterialEffectMap1                                  : shape.getMeshSubsetMaterialEffectMap1                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshSubsetMaterialNormalMap                                   : shape.getMeshSubsetMaterialNormalMap                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshSubsetMaterialSpecularMap                                 : shape.getMeshSubsetMaterialSpecularMap                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshSubsetMaterialEffectMap0Override                          : shape.getMeshSubsetMaterialEffectMap0Override                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshSubsetMaterialEffectMap1Override                          : shape.getMeshSubsetMaterialEffectMap1Override                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshSubsetMaterialNormalMapOverride                           : shape.getMeshSubsetMaterialNormalMapOverride                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshSubsetMaterialSpecularMapOverride                         : shape.getMeshSubsetMaterialSpecularMapOverride                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_setMeshSubsetMaterialEffectMap0AdditionalUVOffset                : shape.setMeshSubsetMaterialEffectMap0AdditionalUVOffset           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_setMeshSubsetMaterialEffectMap0AdditionalUVScale                 : shape.setMeshSubsetMaterialEffectMap0AdditionalUVScale            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_setMeshSubsetMaterialEffectMap0AdditionalUVRotation              : shape.setMeshSubsetMaterialEffectMap0AdditionalUVRotation         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_setMeshSubsetMaterialEffectMap1AdditionalUVOffset                : shape.setMeshSubsetMaterialEffectMap1AdditionalUVOffset           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_setMeshSubsetMaterialEffectMap1AdditionalUVScale                 : shape.setMeshSubsetMaterialEffectMap1AdditionalUVScale            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_setMeshSubsetMaterialEffectMap1AdditionalUVRotation              : shape.setMeshSubsetMaterialEffectMap1AdditionalUVRotation         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshSubsetMaterialEffectMap0AdditionalUVOffset                : shape.getMeshSubsetMaterialEffectMap0AdditionalUVOffset           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshSubsetMaterialEffectMap0AdditionalUVScale                 : shape.getMeshSubsetMaterialEffectMap0AdditionalUVScale            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshSubsetMaterialEffectMap0AdditionalUVRotation              : shape.getMeshSubsetMaterialEffectMap0AdditionalUVRotation         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshSubsetMaterialEffectMap1AdditionalUVOffset                : shape.getMeshSubsetMaterialEffectMap1AdditionalUVOffset           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshSubsetMaterialEffectMap1AdditionalUVScale                 : shape.getMeshSubsetMaterialEffectMap1AdditionalUVScale            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshSubsetMaterialEffectMap1AdditionalUVRotation              : shape.getMeshSubsetMaterialEffectMap1AdditionalUVRotation         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_playMeshSubsetMaterialEffectMap0Movie                            : shape.playMeshSubsetMaterialEffectMap0Movie                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_pauseMeshSubsetMaterialEffectMap0Movie                           : shape.pauseMeshSubsetMaterialEffectMap0Movie                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_stopMeshSubsetMaterialEffectMap0Movie                            : shape.stopMeshSubsetMaterialEffectMap0Movie                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshSubsetMaterialEffectMap0MovieBufferingProgress            : shape.getMeshSubsetMaterialEffectMap0MovieBufferingProgress       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshSubsetMaterialEffectMap0MoviePlaybackProgress             : shape.getMeshSubsetMaterialEffectMap0MoviePlaybackProgress        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshSubsetMaterialEffectMap0MoviePlaybackCursor               : shape.getMeshSubsetMaterialEffectMap0MoviePlaybackCursor          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_setMeshSubsetMaterialEffectMap0MovieTransparentColor             : shape.setMeshSubsetMaterialEffectMap0MovieTransparentColor        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMesh                                                          : shape.getMesh                                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshName                                                      : shape.getMeshName                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshTriangleCount                                             : shape.getMeshTriangleCount                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getMeshVertexCount                                               : shape.getMeshVertexCount                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getSkeletonName                                                  : shape.getSkeletonName                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getSkeletonJointCount                                            : shape.getSkeletonJointCount                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getSkeletonJointNameAt                                           : shape.getSkeletonJointNameAt                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_createRuntimeMesh                                                : shape.createRuntimeMesh                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_overrideSkeletonJointTranslation                                 : shape.overrideSkeletonJointTranslation                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_overrideSkeletonJointRotation                                    : shape.overrideSkeletonJointRotation                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_setSkeletonJointCustomScale                                      : shape.setSkeletonJointCustomScale                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getSkeletonJointTranslation                                      : shape.getSkeletonJointTranslation                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getSkeletonJointRotation                                         : shape.getSkeletonJointRotation                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getSkeletonJointXAxis                                            : shape.getSkeletonJointXAxis                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getSkeletonJointYAxis                                            : shape.getSkeletonJointYAxis                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getSkeletonJointZAxis                                            : shape.getSkeletonJointZAxis                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getSkeletonJointParentJointName                                  : shape.getSkeletonJointParentJointName                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_addSkeletonCloneModifier                                         : shape.addSkeletonCloneModifier                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_addCurve                                                         : shape.addCurve                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_removeCurve                                                      : shape.removeCurve                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getCurveCount                                                    : shape.getCurveCount                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_addCurvePoint                                                    : shape.addCurvePoint                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_removeCurvePoint                                                 : shape.removeCurvePoint                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getCurvePointCount                                               : shape.getCurvePointCount                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getCurvePoint                                                    : shape.getCurvePoint                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_setCurvePoint                                                    : shape.setCurvePoint                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_setCurveStartColor                                               : shape.setCurveStartColor                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_setCurveEndColor                                                 : shape.setCurveEndColor                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_setCurveStartOpacity                                             : shape.setCurveStartOpacity                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_setCurveEndOpacity                                               : shape.setCurveEndOpacity                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getCurveStartColor                                               : shape.getCurveStartColor                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getCurveEndColor                                                 : shape.getCurveEndColor                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_evaluateCurve                                                    : shape.evaluateCurve                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_shape_getCurveLength                                                   : shape.getCurveLength                                              = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_sound_play                                                             : sound.play                                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sound_pause                                                            : sound.pause                                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sound_resume                                                           : sound.resume                                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sound_stop                                                             : sound.stop                                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sound_setVolume                                                        : sound.setVolume                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sound_setPitch                                                         : sound.setPitch                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sound_isPlaying                                                        : sound.isPlaying                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sound_isPaused                                                         : sound.isPaused                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sound_getPlaybackProgress                                              : sound.getPlaybackProgress                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sound_setPlaybackProgress                                              : sound.setPlaybackProgress                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sound_getName                                                          : sound.getName                                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sound_enableSpatialization                                             : sound.enableSpatialization                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sound_isSpatializationEnabled                                          : sound.isSpatializationEnabled                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sound_setSpatializationRolloffFactor                                   : sound.setSpatializationRolloffFactor                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sound_getSpatializationRolloffFactor                                   : sound.getSpatializationRolloffFactor                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sound_setSpatializationReferenceDistance                               : sound.setSpatializationReferenceDistance                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_sound_getSpatializationReferenceDistance                               : sound.getSpatializationReferenceDistance                          = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_string_isEmpty                                                         : string.isEmpty                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_string_getLength                                                       : string.getLength                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_string_getByte                                                         : string.getByte                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_string_format                                                          : string.format                                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_string_replace                                                         : string.replace                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_string_contains                                                        : string.contains                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_string_findFirst                                                       : string.findFirst                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_string_findFirstMatching                                               : string.findFirstMatching                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_string_explode                                                         : string.explode                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_string_lower                                                           : string.lower                                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_string_upper                                                           : string.upper                                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_string_toNumber                                                        : string.toNumber                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_string_getSubString                                                    : string.getSubString                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_string_crc32                                                           : string.crc32                                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_string_md5                                                             : string.md5                                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_string_sha1                                                            : string.sha1                                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_string_hmacsha1                                                        : string.hmacsha1                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_string_reverse                                                         : string.reverse                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_string_compare                                                         : string.compare                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_string_encodeHTML                                                      : string.encodeHTML                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_string_decodeHTML                                                      : string.decodeHTML                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_string_encodeURL                                                       : string.encodeURL                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_string_decodeURL                                                       : string.decodeURL                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_string_encodeBase64                                                    : string.encodeBase64                                               = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_system_getOSType                                                       : system.getOSType                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_getOSVersion                                                    : system.getOSVersion                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_getOSVersionString                                              : system.getOSVersionString                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_getOSLanguage                                                   : system.getOSLanguage                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_getGPUModelDescription                                          : system.getGPUModelDescription                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_getGPUDriverDescription                                         : system.getGPUDriverDescription                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_getGPUCapability                                                : system.getGPUCapability                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_getDeviceUniqueIdentifier                                       : system.getDeviceUniqueIdentifier                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_getDeviceModel                                                  : system.getDeviceModel                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_getDeviceName                                                   : system.getDeviceName                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_getSupportedScreenResolutionCount                               : system.getSupportedScreenResolutionCount                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_getSupportedScreenResolutionAt                                  : system.getSupportedScreenResolutionAt                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_getCurrentScreenResolution                                      : system.getCurrentScreenResolution                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_getClientType                                                   : system.getClientType                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_setWakeLock                                                     : system.setWakeLock                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_getClipboardText                                                : system.getClipboardText                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_setClipboardText                                                : system.setClipboardText                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_getYear                                                         : system.getYear                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_getMonth                                                        : system.getMonth                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_getDayOfMonth                                                   : system.getDayOfMonth                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_getDayOfWeek                                                    : system.getDayOfWeek                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_getTimeOfDay                                                    : system.getTimeOfDay                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_getUnixTimestampString                                          : system.getUnixTimestampString                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_areLocationUpdatesSupported                                     : system.areLocationUpdatesSupported                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_areLocationUpdatesEnabled                                       : system.areLocationUpdatesEnabled                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_enableLocationUpdates                                           : system.enableLocationUpdates                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_getLastKnownLocation                                            : system.getLastKnownLocation                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_areHeadingUpdatesSupported                                      : system.areHeadingUpdatesSupported                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_areHeadingUpdatesEnabled                                        : system.areHeadingUpdatesEnabled                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_enableHeadingUpdates                                            : system.enableHeadingUpdates                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_getLastKnownHeading                                             : system.getLastKnownHeading                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_getLastKnownTrueHeading                                         : system.getLastKnownTrueHeading                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_hasPersistentStorageManager                                     : system.hasPersistentStorageManager                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_openPersistentStorageManager                                    : system.openPersistentStorageManager                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_openURL                                                         : system.openURL                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_getHomeDirectory                                                : system.getHomeDirectory                                           = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_getDocumentsDirectory                                           : system.getDocumentsDirectory                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_getPicturesDirectory                                            : system.getPicturesDirectory                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_findFiles                                                       : system.findFiles                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_findDirectories                                                 : system.findDirectories                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_install                                                         : system.install                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_isInstalled                                                     : system.isInstalled                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_getInstallationStatus                                           : system.getInstallationStatus                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_system_launch                                                          : system.launch                                                     = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_table_isEmpty                                                          : table.isEmpty                                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_table_getSize                                                          : table.getSize                                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_table_getAt                                                            : table.getAt                                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_table_getLast                                                          : table.getLast                                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_table_getFirst                                                         : table.getFirst                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_table_setAt                                                            : table.setAt                                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_table_empty                                                            : table.empty                                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_table_add                                                              : table.add                                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_table_removeAt                                                         : table.removeAt                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_table_removeLast                                                       : table.removeLast                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_table_removeFirst                                                      : table.removeFirst                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_table_insertAt                                                         : table.insertAt                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_table_contains                                                         : table.contains                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_table_shuffle                                                          : table.shuffle                                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_table_reverse                                                          : table.reverse                                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_table_swap                                                             : table.swap                                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_table_reserve                                                          : table.reserve                                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_table_getRangeAt                                                       : table.getRangeAt                                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_table_setRangeAt                                                       : table.setRangeAt                                                  = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_user_getSceneName                                                      : user.getSceneName                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_user_isLocal                                                           : user.isLocal                                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_user_getID                                                             : user.getID                                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_user_sendEvent                                                         : user.sendEvent                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_user_postEvent                                                         : user.postEvent                                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_user_setLocalSoundSourceObject                                         : user.setLocalSoundSourceObject                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_user_getLocalSoundSourceObject                                         : user.getLocalSoundSourceObject                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_user_setLocalSoundSourceRolloffFactor                                  : user.setLocalSoundSourceRolloffFactor                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_user_getLocalSoundSourceRolloffFactor                                  : user.getLocalSoundSourceRolloffFactor                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_user_setLocalSoundSourceReferenceDistance                              : user.setLocalSoundSourceReferenceDistance                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_user_getLocalSoundSourceReferenceDistance                              : user.getLocalSoundSourceReferenceDistance                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_user_getAIModelCount                                                   : user.getAIModelCount                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_user_getAIModelNameAt                                                  : user.getAIModelNameAt                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_user_hasAIModel                                                        : user.hasAIModel                                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_user_hasAIEventHandler                                                 : user.hasAIEventHandler                                            = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_video_getCaptureDeviceCount                                            : video.getCaptureDeviceCount                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_video_getCaptureDeviceNameAt                                           : video.getCaptureDeviceNameAt                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_video_setActiveCaptureDevice                                           : video.setActiveCaptureDevice                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_video_startCaptureToPixelMap                                           : video.startCaptureToPixelMap                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_video_stopCapture                                                      : video.stopCapture                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_video_getCaptureWidth                                                  : video.getCaptureWidth                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_video_getCaptureHeight                                                 : video.getCaptureHeight                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_video_getCaptureHorizontalFlip                                         : video.getCaptureHorizontalFlip                                    = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_video_setCaptureWidth                                                  : video.setCaptureWidth                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_video_setCaptureHeight                                                 : video.setCaptureHeight                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_video_setCaptureRate                                                   : video.setCaptureRate                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_video_setCaptureHorizontalFlip                                         : video.setCaptureHorizontalFlip                                    = __pCallback ; break ; \
                                                                                                                                                                                                            \
    case S3DX::AIEngineAPI::CallbackID_xml_getRootElement                                                     : xml.getRootElement                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_getElementName                                                     : xml.getElementName                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_setElementName                                                     : xml.setElementName                                                = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_getElementValue                                                    : xml.getElementValue                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_setElementValue                                                    : xml.setElementValue                                               = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_getElementChildCount                                               : xml.getElementChildCount                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_getElementChildAt                                                  : xml.getElementChildAt                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_getElementAttributeCount                                           : xml.getElementAttributeCount                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_getElementAttributeAt                                              : xml.getElementAttributeAt                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_getElementAttributeWithName                                        : xml.getElementAttributeWithName                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_getElementParent                                                   : xml.getElementParent                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_getElementFirstChild                                               : xml.getElementFirstChild                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_getElementNextSibling                                              : xml.getElementNextSibling                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_getElementFirstChildWithName                                       : xml.getElementFirstChildWithName                                  = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_getElementNextSiblingWithName                                      : xml.getElementNextSiblingWithName                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_appendElementChild                                                 : xml.appendElementChild                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_insertElementChildAt                                               : xml.insertElementChildAt                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_appendElementChildElement                                          : xml.appendElementChildElement                                     = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_insertElementChildElementAt                                        : xml.insertElementChildElementAt                                   = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_removeElementChildAt                                               : xml.removeElementChildAt                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_removeElementChild                                                 : xml.removeElementChild                                            = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_appendElementAttribute                                             : xml.appendElementAttribute                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_removeElementAttributeAt                                           : xml.removeElementAttributeAt                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_removeElementAttribute                                             : xml.removeElementAttribute                                        = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_getAttributeName                                                   : xml.getAttributeName                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_setAttributeName                                                   : xml.setAttributeName                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_getAttributeValue                                                  : xml.getAttributeValue                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_setAttributeValue                                                  : xml.setAttributeValue                                             = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_empty                                                              : xml.empty                                                         = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_toString                                                           : xml.toString                                                      = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_createFromString                                                   : xml.createFromString                                              = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_send                                                               : xml.send                                                          = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_receive                                                            : xml.receive                                                       = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_getSendStatus                                                      : xml.getSendStatus                                                 = __pCallback ; break ; \
    case S3DX::AIEngineAPI::CallbackID_xml_getReceiveStatus                                                   : xml.getReceiveStatus                                              = __pCallback ; break ; \
    }        
//-----------------------------------------------------------------------------
#define S3DX_DECLARE_AIENGINEAPI( )                                                                         \
                                                                                                            \
    private: class __AIEngineAPI : public S3DX::AIEngineAPI                                                 \
    {                                                                                                       \
    public :                                                                                                \
                __AIEngineAPI ( ) ;                                                                         \
        void    RegisterCallback ( S3DX::uint32 _iCallbackID, S3DX::AICallback _pCallback ) ;               \
    } ;                                                                                                     \
    private: __AIEngineAPI __oEngineAPI;                                                                    \
    public: S3DX::AIEngineAPI *GetAIEngineAPI ( ) ;
//-----------------------------------------------------------------------------
#define S3DX_DECLARE_AIENGINEAPI_PACKAGES( )                                                                    \
                                                                                                                \
    S3DX::AIEngineAPI::AnimationPackage   S3DX::animation       ;                                               \
    S3DX::AIEngineAPI::ApplicationPackage S3DX::application     ;                                               \
    S3DX::AIEngineAPI::CachePackage       S3DX::cache           ;                                               \
    S3DX::AIEngineAPI::CameraPackage      S3DX::camera          ;                                               \
    S3DX::AIEngineAPI::DebugPackage       S3DX::debug           ;                                               \
    S3DX::AIEngineAPI::DynamicsPackage    S3DX::dynamics        ;                                               \
    S3DX::AIEngineAPI::GroupPackage       S3DX::group           ;                                               \
    S3DX::AIEngineAPI::HashtablePackage   S3DX::hashtable       ;                                               \
    S3DX::AIEngineAPI::HudPackage         S3DX::hud             ;                                               \
    S3DX::AIEngineAPI::InputPackage       S3DX::input           ;                                               \
    S3DX::AIEngineAPI::LightPackage       S3DX::light           ;                                               \
    S3DX::AIEngineAPI::LogPackage         S3DX::log             ;                                               \
    S3DX::AIEngineAPI::MathPackage        S3DX::math            ;                                               \
    S3DX::AIEngineAPI::MeshPackage        S3DX::mesh            ;                                               \
    S3DX::AIEngineAPI::MicrophonePackage  S3DX::microphone      ;                                               \
    S3DX::AIEngineAPI::MusicPackage       S3DX::music           ;                                               \
    S3DX::AIEngineAPI::NavigationPackage  S3DX::navigation      ;                                               \
    S3DX::AIEngineAPI::NetworkPackage     S3DX::network         ;                                               \
    S3DX::AIEngineAPI::ObjectPackage      S3DX::object          ;                                               \
    S3DX::AIEngineAPI::PixelmapPackage    S3DX::pixelmap        ;                                               \
    S3DX::AIEngineAPI::ProjectorPackage   S3DX::projector       ;                                               \
    S3DX::AIEngineAPI::ScenePackage       S3DX::scene           ;                                               \
    S3DX::AIEngineAPI::SensorPackage      S3DX::sensor          ;                                               \
    S3DX::AIEngineAPI::ServerPackage      S3DX::server          ;                                               \
    S3DX::AIEngineAPI::SessionPackage     S3DX::session         ;                                               \
    S3DX::AIEngineAPI::SfxPackage         S3DX::sfx             ;                                               \
    S3DX::AIEngineAPI::ShapePackage       S3DX::shape           ;                                               \
    S3DX::AIEngineAPI::SoundPackage       S3DX::sound           ;                                               \
    S3DX::AIEngineAPI::StringPackage      S3DX::string          ;                                               \
    S3DX::AIEngineAPI::SystemPackage      S3DX::system          ;                                               \
    S3DX::AIEngineAPI::TablePackage       S3DX::table           ;                                               \
    S3DX::AIEngineAPI::UserPackage        S3DX::user            ;                                               \
    S3DX::AIEngineAPI::VideoPackage       S3DX::video           ;                                               \
    S3DX::AIEngineAPI::XmlPackage         S3DX::xml             ;                                   
//-----------------------------------------------------------------------------
#ifdef S3DX_DLL
    #define S3DX_IMPLEMENT_AIENGINEAPI( _name_ )                                                                \
                                                                                                                \
        S3DX::AIEngineAPI *S3DX_MODULE_GUID::__pS3DXEAPIMI = NULL ;                                             \
                                                                                                                \
        _name_::__AIEngineAPI::__AIEngineAPI ( )                                                                \
        {                                                                                                       \
            S3DX_MODULE_GUID::__pS3DXEAPIMI = this ;                                                            \
        }                                                                                                       \
        void _name_::__AIEngineAPI::RegisterCallback ( S3DX::uint32 _iCallbackID, S3DX::AICallback _pCallback ) \
        {                                                                                                       \
            S3DX_REGISTER_AIENGINEAPI_CALLBACK ( _iCallbackID, _pCallback ) ;                                   \
        }                                                                                                       \
        S3DX::AIEngineAPI *_name_::GetAIEngineAPI ( )                                                           \
        {                                                                                                       \
            return &__oEngineAPI ;                                                                              \
        }                                                                                                       \
        S3DX_DECLARE_AIENGINEAPI_PACKAGES ( )
#else
    #define S3DX_IMPLEMENT_AIENGINEAPI( _name_ )                                                                \
                                                                                                                \
        S3DX::AIEngineAPI *S3DX_MODULE_GUID::__pS3DXEAPIMI = NULL ;                                             \
                                                                                                                \
        _name_::__AIEngineAPI::__AIEngineAPI ( )                                                                \
        {                                                                                                       \
            S3DX_MODULE_GUID::__pS3DXEAPIMI = this ;                                                            \
        }                                                                                                       \
        void _name_::__AIEngineAPI::RegisterCallback ( S3DX::uint32 _iCallbackID, S3DX::AICallback _pCallback ) \
        {                                                                                                       \
            S3DX_REGISTER_AIENGINEAPI_CALLBACK ( _iCallbackID, _pCallback ) ;                                   \
        }                                                                                                       \
        S3DX::AIEngineAPI *_name_::GetAIEngineAPI ( )                                                           \
        {                                                                                                       \
            return &__oEngineAPI ;                                                                              \
        }                                                                                                       
#endif
//-----------------------------------------------------------------------------
#endif
//-----------------------------------------------------------------------------
